イーサネットプロトコルを使用していくつかのplcデータを読み取るために、c#で小さなアプリケーションを作成しました。イーサネット ソケット、開閉は .dll ライブラリ内に保存されます。今、私はこのパブリックメソッドを使用しています:
public static string readdata()
{
try
{
...
return (plcdata());
}
catch
{}
}
私の疑問: plcdata() (.dll のメソッド) が数秒待機している場合 (たとえば、通信が遅いなど)、アプリケーションがフリーズしている可能性があります。
だから、私は次のように返された文字列に EventHandler を追加しようとします:
private static TextBox auxDataTextBox = new TextBox();
public static void goRead()
{
auxDataTextBox.TextChanged += new EventHandler(auxDataIncoming);
auxDataTextBox.Text = plcdata();
}
private static void auxDataIncoming(object sender, EventArgs e)
{
// Do something
}
この場合、「plcdata()」が変更されると、auxDataIncoming が発生します。正しいです?それとも、タイムアウト制御を行う方が良いですか? それとも新スレ立てる?
あなたの意見をどうもありがとう