|
分類:[.NET 全般]
スレッドタイマーを使用したデーモンの取得
スレッドタイマーを使用し、2個の特定されたサービスを取得しようと 考えています。このサービスは、頻繁に状態が変わる為 スレッドタイマーを利用し10分起きにサービスの情報を取得させたく思って作成しています。
表示には、DataGridViewを利用しています。
サービスゲットクラスを作成し、データテーブルを作成しその値を返すメソッドがあります。 namespace ServiceWatchWindowsApplication { public class ServiceManeger : System.IDisposable { public System.Data.DataTable ServiceNameAdapter() { dt.Clear();
System.ServiceProcess.ServiceController sc = new System.ServiceProcess.ServiceController("service1", ".");
System.Data.DataRow dr = dt.NewRow(); dr["ServiceName"] = sc.ServiceName.ToString(); dr["State"] = sc.Status.ToString(); dr["MachineName"] = sc.MachineName.ToString(); dt.Rows.Add(dr);
return dt; } } }
この値を、フォームクラスから
dataGridView1.DataSource = ServiceManeger.ServiceNameAdapter にて
dataGridViewに値を取得しています。
この時、スレッドから発生した場合にdataGridViewのDataErrorイベントが発生して しまいます。
エラー内容は、(-1, 2)のセルでエラーが発生しました。 インデックス 2 に値がありません。とでます。
初回のサービスの取得はできていてServiceControllerの引数やDataGridViewの Row/Colは固定値なので何故このようなエラーがでてしまうのか 教えて欲しいです。
よろしく御願いします。
|