gpt4 book ai didi

c# - 立即停止线程

转载 作者:太空宇宙 更新时间:2023-11-03 14:15:54 34 4
gpt4 key购买 nike

我在一个线程中有一个长时间运行的任务。我

Thread a = new Thread(new ThreadStart()({ delegate()
{
Catalog.Generate(); //long running task
}));
a.Start();

Thread b = new Thread(new ThreadStart()({ delegate()
{
if( File.Exists(stopFile) )
{
a.Abort();
}
}));
b.Start();

这会在创建停止文件时停止线程 A 但 catalog.generate 方法仍然继续运行?我该如何结束它?

最佳答案

问题是您的线程 b 开始工作并进行检查并立即退出。

您必须为线程 b 添加某种循环才能继续运行(这是示例代码,不是最佳实践):

Thread b = new Thread(new ThreadStart()({ delegate()
{
int t=0;
while(i<100)
{

if( File.Exists(stopFile) )
{
a.Abort();

}
else
{
i++;
Thread.Sleep(500);
}
}

}));

关于c# - 立即停止线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6585741/

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