私は、非同期のtcp操作から入ったイベントデータを使用して提供するライブラリを持っています。 UI上で受け取ったコントロールのデータを使用しているのに、クロススレッドOpration例外が発生します。ライブラリの消費者が自分のコントロールに表示するデータを取得する前に、この問題を解決する方法。だから基本的に私は自分のスレッドにライブラリを使ってどこにデータを投げる必要がありますか?他のスレッドからのデータを安全にコントロールするにはどうすればいいですか?
リンクされたファイルでコンパクトなフレームワークに使用されているのと同じコード。
私はこのメソッドをヘルプコントロールでライブラリ内で使用していますが、呼び出しが必要ではあるが動作していないと言っています。
イベントを使用してライブラリを使用するユーザーにデータを提供するサンプルコードです。
if (OnClientChangeConnection != null) SafeData.InvokeIfNecessary(_helpControl,() => OnClientChangeConnection(ConnectedClients, requestClientInfo)); // ConnectedClients is an integer and requestClientInfo is a List<ClientInfo> class type.
ありがとうございます。
を持つクラスですか?何が起こるのですか? – SLaks
私もそれを取得しません、それはちょうどcontrol.Invoke(setValue)になることはありません。このライブラリは、非同期TCP通信の目的で使用されます。 StrangeはCompact Frameworkにあります私は問題ありません。 –
デバッガには何が表示されますか? – SLaks