【发布时间】:2012-05-09 17:14:44
【问题描述】:
我试图创建一个通用的实用程序,用于在主线程上调用。以下是我的想法 - 这样做有什么问题吗?检查 IsHandleCreated 和 IsDisposed 是多余的吗? Disposed时,IsHandleCreated会被设置为false吗? (因为这是 bool 的默认值)
public static void InvokeMain(this Control Source, Action Code)
{
try
{
if (Source == null || !Source.IsHandleCreated || Source.IsDisposed) { return; }
if (Source.InvokeRequired)
{
Source.BeginInvoke(Code);
}
else
{
Code.Invoke();
}
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
提前致谢! 威廉
【问题讨论】:
-
如果
InvokeRequired为真,调用将变为异步,而如果为假,则调用同步完成。
标签: c# user-interface multithreading