gpt4 book ai didi

c# - 快速多线程问题

转载 作者:太空宇宙 更新时间:2023-11-03 20:31:53 25 4
gpt4 key购买 nike

我有一个启动函数,它调用一个函数,该函数根据设置是否成功返回一个 bool 值。成功则为真,失败则为假。我想在一个新线程上启动该函数,然后检查该函数的状态:这是代码。

System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ThreadStart(StartAdapter));
thread.Start();

我的问题是,在那种情况下我将如何检查 startadapter 方法的返回状态?因为我的 friend 告诉我,我不会知道返回状态,因为它是在另一个线程上启动的,但仍在尝试:

System.Threading.Thread thread = new System.Threading.Thread(new System.Threading.ThreadStart(StartAdapter));
thread.Start();
bool result = StartAdapter();

会调用该函数两次,这也是我不想要的。有没有人对此有所了解?

在这种情况下,我将如何检查从 startadapter 函数返回的 bool 值?

.NET 3.5

最佳答案

对于这种情况,有 Task<T> class在 ThreadPool 上执行(例如)并在完成后让您知道返回值

只需使用:



var task = TaskFactory<yourResultType>.StartNew(StartAdapter);
Action<yourResultType> actionAfterResult = ...; // whatever you have to do
task.ContinueWith(actionAfterResult);

// or:
var result = task.Result; // this will block till the result is computed

// or another one of the alternatives you can learn about on MSDN (see link above)

关于c# - 快速多线程问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7150111/

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