c# - BeginInvoke 的@object 参数应该传递什么?

标签 c# multithreading events delegates begininvoke

我有一个定义如下的事件委托(delegate):

public delegate void CallbackDelegate(Data data);
public event CallbackDelegate OnDataComplete;

我异步引发事件:

// Raise the OnDataComplete event
OnDataComplete.BeginInvoke(new Data(), null, null);

随后,BeginInvoke 的签名如下所示:

IAsyncResult CallbackDelegate.BeginInvoke(Data data, AsyncCallback callback, object @object)

在大多数示例中,我看到 BeginInvoke 被调用时 @object 参数为 null,但我找不到文档这解释了该参数的用途。

那么那个参数的目的是什么?我们可以用它做什么?

最佳答案

你可以在那里提供任何你想要的东西。在 AsyncResult 方法中,您可以使用 IAsyncResult.AsyncState 检索此值。它供您使用。

关于c# - BeginInvoke 的@object 参数应该传递什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4763342/

相关文章:

jQuery 查找注册到对象的事件处理程序

c# - 缓存查找性能

c# - 如何将普通字符串转换为十六进制的等效字节数组?

c# - 泛型类中的可空类型

c# - 我可以限制同时运行的 System.Threading.Tasks.Task 对象的数量吗?

c - 无法使用线程概念显示进度条?

qt - 当项目完成重绘时,我会收到通知吗?

c# - 如何取消订阅 C# 中特定类的事件的所有处理程序?

c# - 从没有堆分配的列表中获取数组

java - 如何同时等待一个整数达到某个值?