1

ソケットを使用して文字列を読み取るwinformsアプリケーションがあり、ソケットはbackgroundWorkerスレッドの下にあります。

物事はうまく機能していますが、新しい会社の基準に従って、私のマネージャーは、このwinformsアプリケーションを常にスタートアップフォルダーに置くのではなく、サービスとして実行することを望んでいます。

問題は、このwinformsアプリケーションで以下のコード行を使用していることです

Invoke(new MethodInvoker(
                  delegate { _logger.Error((String.Format("Error: {0}", _socketError))); }
                  ));

誰かがwindowservericeプロジェクトで上記のコード行を使用するために私が何をするかをガイドできますか

提案してください

ありがとう

更新:このステートメントはbackgroundWorkerコンポーネントのDoWorkイベントで実行されているため、invokeを使用する必要があります。

4

1 に答える 1

3

ログファイルに書き込んでいるだけなので_logger、そもそも使用の本来の意図がわかりませんInvoke。その行を次のように置き換えても安全だと思います。

_logger.Error(String.Format("Error: {0}", _socketError));
于 2012-04-14T12:51:02.613 に答える