Bog*_*ogi 33 c# multithreading thread-state
我有以下问题:
我想检查(C#)线程是否已完成执行,即线程方法是否已返回.我现在所做的就是打电话Thread.Join(1)
,但这会延迟1毫秒.有没有办法简单地检查线程是否已完成.检查Thread.ThreadState
似乎太麻烦了.
sha*_*aja 11
如果您不想通过等待/检查其他正在运行的线程完成来阻止当前线程,则可以实现这样的回调方法。
Action onCompleted = () =>
{
//On complete action
};
var thread = new Thread(
() =>
{
try
{
// Do your work
}
finally
{
onCompleted();
}
});
thread.Start();
Run Code Online (Sandbox Code Playgroud)
如果你正在处理不支持跨线程操作的控件,那么你必须调用回调方法
this.Invoke(onCompleted);
Run Code Online (Sandbox Code Playgroud)
Chr*_*isF 10
您可以在完成并订阅该事件时从您的线程中触发事件.
或者你可以Thread.Join()
不带任何参数调用:
阻塞调用线程直到线程终止,同时继续执行标准COM和SendMessage抽取.
阻塞调用线程,直到线程终止或指定的时间过去,同时继续执行标准COM和SendMessage抽取.
在这种情况下,指定的时间是1毫秒.
归档时间: |
|
查看次数: |
129069 次 |
最近记录: |