gpt4 book ai didi

c# - 调用跨线程事件的最简洁方法

转载 作者:IT王子 更新时间:2023-10-29 03:39:47 25 4
gpt4 key购买 nike

我发现 .NET 事件模型使我经常在一个线程上引发一个事件并在另一个线程上监听它。我想知道将事件从后台线程编码到我的 UI 线程的最干净的方法是什么。

根据社区的建议,我使用了这个:

// earlier in the code
mCoolObject.CoolEvent+=
new CoolObjectEventHandler(mCoolObject_CoolEvent);
// then
private void mCoolObject_CoolEvent(object sender, CoolObjectEventArgs args)
{
if (InvokeRequired)
{
CoolObjectEventHandler cb =
new CoolObjectEventHandler(
mCoolObject_CoolEvent);
Invoke(cb, new object[] { sender, args });
return;
}
// do the dirty work of my method here
}

最佳答案

我有some code for this在线的。它比其他建议好得多;一定要检查一下。

示例用法:

private void mCoolObject_CoolEvent(object sender, CoolObjectEventArgs args)
{
// You could use "() =>" in place of "delegate"; it's a style choice.
this.Invoke(delegate
{
// Do the dirty work of my method here.
});
}

关于c# - 调用跨线程事件的最简洁方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22356/

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