gpt4 book ai didi

c# - 替代 Thread.Suspend() 方法

转载 作者:行者123 更新时间:2023-11-30 14:00:40 25 4
gpt4 key购买 nike

如您所知,

Thread.Suspend() 方法已过时。当按钮点击事件发生时,我想立即暂停线程。我使用了 Thread.Suspend() 并且效果很好,但每个人都建议使用 Thread.Suspend() 方法不是暂停任务的好方法。我使用了一个标志来暂停任务,但每次当按钮点击事件出现时,我都必须等待退出任务。我使用 Thread.IsAlive 标志等待线程退出,但此方法卡住了形式。

void ButtonClickEvent(object sender, ButtonClickEventArgs e)
{
TheadExitFlag = false;

if(MyThread != null)
{
while(MyThread.IsAlive);
//MyThread.Suspend();
}
}

void MyTask(void)
{
while(TheadExitFlag)
{
// some process
Thread.Sleep(5000);
}
}

如何立即挂起线程?

最佳答案

据我所知,没有具有相同功能的替代方案。我不确定操作系统 Suspend() 的问题是否可以在语言/库中解决,但没有人尝试这样做,所以这可能太难了,甚至是不可能的。

在这样的替代方案存在之前,您只能轮询挂起标志,然后等待某个同步对象以获取“恢复”信号。我用过AutoResetEvent为此。

关于c# - 替代 Thread.Suspend() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10206664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com