質問するログイン新規登録

質問編集履歴

1

追記

2015/05/18 08:06

投稿

makiikeda1216
makiikeda1216

スコア128

title CHANGED
File without changes
body CHANGED
@@ -8,11 +8,36 @@
8
8
 
9
9
  以下が外部アプリ(C++)を呼んだ際にDoEventをはさんだ処理です。
10
10
  ```lang-<C#>
11
+
12
+ //FormLoadイベントAで下記メソッドを呼び出す
13
+ private async void Form1_Load(object sender,EventArgs e)
14
+ {
15
+ await AsyncClient();//メソッドBの呼び出し
16
+ }
17
+
18
+
19
+
20
+ //外部アプリを10~1000回呼ぶメソッドB
21
+ public async Task<int> AsyncClient()
22
+ {
23
+ //いろいろな処理(省略)...
24
+
25
+ while(dataReader.Read())//DBのレコード数分10~1000回くらまわします
26
+ {
27
+ await CallProcessMethod();//外部プロセスを呼ぶメソッド
28
+ }
29
+ }
30
+
31
+
32
+ //外部アプリを呼ぶメソッドC
33
+
34
+ public static async Task<T> CallProcessMethod()
35
+ {
11
36
  var process_1 = new Process()
12
37
  {
13
38
  StartInfo =
14
39
  {
15
- FileName = processPath,
40
+ FileName = "外部アプリ.exe",
16
41
  Arguments = xxxxxxxx
17
42
  }
18
43
  };
@@ -23,11 +48,12 @@
23
48
  });
24
49
 
25
50
  await Task.Factory.StartNew(() => process_1.Start());
26
- await Task.Factory.StartNew(() => process_1.WaitForExit());//約1秒ほどかかるC++の外部アプリ
51
+ await Task.Factory.StartNew(() => process_1.WaitForExit());//約1秒ほどかかるC++の"外部アプリ.exe"をここで起動
27
52
  await Task.Factory.StartNew(() => process_1.Dispose());
28
53
 
29
54
  await Task.Factory.StartNew(() =>
30
55
  {
31
56
  Application.DoEvents();
32
57
  });
58
+ }
33
59
  ```