から何らかの方法で信号を送ることによって、メインスレッドからメソッド「呼び出し」強制的にどのように、私は「質問C#の:他のスレッド長いタイトルのために申し訳ありません
を表現する方法についても、道を知りませんメインスレッド(Cライブラリ)とは別のコンテキストからコールバックを実行するライブラリを使用して、C#でコールバックを作成し、呼び出されたときにイベントを発生させたいだけです。
しかし、私はイベントの中に何が入っているのか分からないので、私はロックなどの問題なしにメソッドを呼び出す方法を見つけたいと思います(そうでなければ、サードパーティのユーザーはこれをイベント、非常に醜い)
これを行う方法はありますか? 私は間違った方法で完全にすることができますが、私は別のスレッド(.Invokeのもの)を処理するwinformsの方法について考えています
そうでなければ、ウィンドウのメッセージループにメッセージを送信できますメッセージパッシングについて多くを知っていると私は、この
例のように「カスタム」のメッセージ送信できる場合:このコールバックは、私は、私がコントロールの上に持っていない他のプログラムからなり呼ばれる
private uint lgLcdOnConfigureCB(int connection, System.IntPtr pContext)
{
OnConfigure(EventArgs.Empty);
return 0U;
}
をメインスレッド(私のwを処理するもの)でOnConfigureメソッドを実行するように通知)、それを行う方法? や他の言葉で、私はロック
編集1について考える必要がなくOnConfigureを実行したいと思います:
私はこの例外に問題があります:コールバック:
CallbackOnCollectedDelegateは メッセージをretrived代理人 'G19dotNet!G19dotNet.LgLcd + lgLcdOnSoftButtonsCB :: Invoke'をGarbageCollectorで収集して実行します。アンマネージコードの代表者の間に確保されなければならないあなたは、彼らが編集2
と呼ばれることはありませんことを確認するまで削除されません。自分で解決
号、いつも私を助けにStackOverflowに感謝を! 将来の参照用に:Defining a delegate as a function pointer
していることのコードサンプルを投稿してください。 –
質問を確認し、コード例を追加しました –