現在のプロジェクトのipcを処理するために非同期関数呼び出しを使用して、.netリモーティングを使用しています。
クライアントに次のことをしてもらいたいという問題が発生しています。
- 非同期で情報を要求する
- GUIのロードを続行します
- 非同期呼び出しが完了したら、それをGUIにロードします
私は次のコードでこれを行います
GetFileTextDelegate ^svd = gcnew GetFileTextDelegate(obj, &BaseRemoteObject::GetFileText);
AsyncCallback ^callback = gcnew AsyncCallback(RecievedSomething);
IAsyncResult ^arValSet = svd->BeginInvoke(callback, nullptr);
上記の例では、RecievedSomethingはこの例の静的メソッドである必要があります。何故ですか?この関数を非静的にすることができれば、GUIをロードできます。
私の解決策は、GUIがサブスクライブしている静的イベントをRecievedSomethingで起動させることです。これは、1つの非同期関数呼び出しを処理するために2つのデリゲートと1つのイベントが必要になるという点で面倒です。
AsyncCallbackを非静的関数で動作させる方法はありますか?
ありがとう!