C#异步回调不需要调用

C#异步回调不需要调用,c#,.net,asynchronous,C#,.net,Asynchronous,我不熟悉C#,但不是异步编程。但有一件事我自己无法解决。如果在.Net中使用线程或任务,并且希望更新表单控件,则必须使用control.Invoke方法,但我最近注意到,在套接字上使用BeginReceive时,我可以在回调中更新控件,而无需显式调用。我的印象是回调将在不同的线程上执行,而不是调用方 如果这不是真的,我如何在自己的方法中实现这一点。我有一些分支执行来启动各种服务,并且发现我需要使用invoke来显示完成状态。更糟糕的是,我还没有找到一种方法来调用执行驻留在另一个类中但实际上必须在

我不熟悉C#,但不是异步编程。但有一件事我自己无法解决。如果在.Net中使用线程或任务,并且希望更新表单控件,则必须使用control.Invoke方法,但我最近注意到,在套接字上使用BeginReceive时,我可以在回调中更新控件,而无需显式调用。我的印象是回调将在不同的线程上执行,而不是调用方

如果这不是真的,我如何在自己的方法中实现这一点。我有一些分支执行来启动各种服务,并且发现我需要使用invoke来显示完成状态。更糟糕的是,我还没有找到一种方法来调用执行驻留在另一个类中但实际上必须在控件范围内的工作的方法,并调用控件上的调用。我现在用递归检查编写所有回调,但如果有办法的话,那就太好了


谢谢

很难理解你的问题。。。也许一些代码会有所帮助?我不相信您可以依靠调用线程调用回调-这可能是一个实现细节,在以后的版本中可能会更改,因为我在文档中没有看到它的指定。但你真正的问题是什么?它是否用于在没有任何控件引用的情况下调用?您可能希望尝试在System.Windows.Forms.Application.OpenForms[0]之类的对象上调用