我正在使用RegisterWaitForSingleObject
调用其基本用法形式,在提供的超时值上调用方法,一切正常。然而,我使用它的一个特定场景是,在事件处理程序中调用RegisterWaitForSingleObject
的代码,并且我需要将一些额外的信息传递给回调方法。目前回调方法具有以下所需签名:
public void MyCallBackMethod(object state, bool timedOut)
所以从技术上讲,我可以这样做:
public void MyCallBackMethod(object state, bool timedOut, string SomeValue)
然而现在我不知道在调用
RegisterWaitForSingleObject
时手动发送哪些值来设置state
和timeout
。ThreadPool.RegisterWaitForSingleObject(_stop, MyCallBackMethod(?,?, "ABC123"), null, 5000, true);
如何正确传递附加值到使用
RegisterWaitForSingleObject
注册的回调方法中?
id => AfterSaveMethod2(id, index)
基本上与(state, timeout) => MyCallbackMethod(state, timeout, "ABC123")
相同,只是id
更改为state, timeout
,index
更改为"ABC123"
。同样,如果您将(sender) => evHandler(sender,someData)
更改为state, timeout
和someData
更改为"ABC123"
,那么您就得到了答案。这是相同的模式。 - Raymond Chen