C# 传递给回调未更新的值

C# 传递给回调未更新的值,c#,asynchronous,callback,begininvoke,iasyncresult,C#,Asynchronous,Callback,Begininvoke,Iasyncresult,使用IAsyncResult模式,我实现了一个异步操作 我的调用开始的签名是: object[] data = new object[] {field1,field2}; AsyncSendMessageToSystem caller = SendMessageToSystem; caller.BeginInvoke(field1,field2,field3, new AsyncCallback(callbackMethod),data); 调用callbackMethod时,它将数据对象作

使用IAsyncResult模式,我实现了一个异步操作

我的调用开始的签名是:

object[] data = new object[] {field1,field2};

AsyncSendMessageToSystem caller = SendMessageToSystem;
caller.BeginInvoke(field1,field2,field3, new AsyncCallback(callbackMethod),data);
调用callbackMethod时,它将数据对象作为输入。 字段1变量拟在SendMessageToSystem中进行修改,但回调方法将接收原始值,而更新后的值不会被修改

我如何传递到回调更新的值


谢谢

是否验证回调方法是否接收原始值?其工作方式是回调方法获取对对象
数据的引用,因为
对象[]
是引用类型。您需要确保在调用回调之前对
field1
进行修改