public partial class MainWindow : window
{
private Thread t = new Thread;
private void btnSend_Click(object sender, RoutedEventArgs e)
{
if (t != null)
{
if (t.IsAlive == true)
{
t.Abort();
t = null; //Is this correct? should I free this before making null?
return;
}
t = new Thread(send.Image);
t.Start();
}
}
}
В приведенном выше коде показан обработчик событий. Когда я нажимаю кнопку «Отправить», новый процесс должен быть создан. и когда я нажимаю ту же кнопку, процесс должен останавливаться. Затем снова нажмите «Отправить», и процесс должен начать снова. Поток должен быть создан в одном и том же объекте 't'.должен освободить объект нити? C#
Действительно ли вы хотите прервать последнюю отправку на основе ввода пользователем? Не зная, что send.Image трудно сказать, но это выглядит неправильно. Работник рабочего стола может быть лучшим выбором. Прерывание должно быть оставлено для чрезвычайных ситуаций, это ничем не отличается от Killing процесса, это должно быть сделано только тогда, когда нет альтернативы, у вас должно быть много. –
Подумайте об использовании более абстрактного способа использования нити, по крайней мере, для threadpool или более лучшего TPL. –