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

質問編集履歴

3

一部修正

2016/08/14 13:12

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -46,7 +46,6 @@
46
46
  End Class
47
47
 
48
48
  Public Class frmMain
49
- private lst As List(Of bean) = Nothing
50
49
  Private Sub btnStart_Click(sender As Object, e As EventArgs) Handles btnStart.Click
51
50
  BackgroundWorker1.WorkerSupportsCancellation = True
52
51
  BackgroundWorker1.WorkerReportsProgress = True
@@ -56,14 +55,14 @@
56
55
  ByVal sender As Object,
57
56
  ByVal e As System.ComponentModel.DoWorkEventArgs) _
58
57
  Handles BackgroundWorker1.DoWork
58
+ Dim lst As List(Of bean)
59
59
  While True
60
60
  If BackgroundWorker1.CancellationPending Then
61
61
  Exit Sub
62
62
  End If
63
- lst = New List(Of bean)
64
63
  Dim CLSMain As clsMain = New clsMain
65
- lst = CLSListMain.prepare()
64
+ lst = CLSMain.prepare()
66
- CLSListMain.check(lst)
65
+ CLSMain.check(lst)
67
66
  BackgroundWorker1.ReportProgress(0, lst)
68
67
  Threading.Thread.Sleep(60000)
69
68
  End While
@@ -80,7 +79,7 @@
80
79
  ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) _
81
80
  Handles BackgroundWorker1.RunWorkerCompleted
82
81
  If e.Cancelled = True Then
83
- BackgroundWorker1.CancelAsync()
82
+ 'BackgroundWorker1.CancelAsync()
84
83
  Else
85
84
  Dim lst As List(Of bean) = DirectCast(e.Result, List(Of bean))
86
85
  For Each r As bean In lst

2

編集

2016/08/14 13:12

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -66,9 +66,7 @@
66
66
  CLSListMain.check(lst)
67
67
  BackgroundWorker1.ReportProgress(0, lst)
68
68
  Threading.Thread.Sleep(60000)
69
- End While
69
+ End While
70
-
71
-
72
70
  e.Result = lst
73
71
  End Sub
74
72
  Private Sub BackgroundWorker1_ProgressChanged(
@@ -76,12 +74,21 @@
76
74
  ByVal e As ProgressChangedEventArgs) _
77
75
  Handles BackgroundWorker1.ProgressChanged
78
76
  Dim lst As List(Of bean) = DirectCast(e.UserState, List(Of bean))
77
+ End Sub
78
+ Private Sub BackgroundWorker1_RunWorkerCompleted(
79
+ ByVal sender As System.Object,
80
+ ByVal e As System.ComponentModel.RunWorkerCompletedEventArgs) _
81
+ Handles BackgroundWorker1.RunWorkerCompleted
82
+ If e.Cancelled = True Then
83
+ BackgroundWorker1.CancelAsync()
84
+ Else
85
+ Dim lst As List(Of bean) = DirectCast(e.Result, List(Of bean))
79
86
  For Each r As bean In lst
80
- Dim rResult As Control() = Controls.Find("txtBox" & r.No, True)
87
+ Dim rResult As Control() = Controls.Find("txtBox" & r.No, True)
81
88
  CType(rResult(0), TextBox).Text = r.Result
82
89
  Next
90
+ End If
83
91
  End Sub
84
-
85
92
  Private Sub btnStop_Click(sender As Object, e As EventArgs) Handles btnStop.Click
86
93
  'ストップボタンでBackgroundWorkerを停止させたい
87
94
  BackgroundWorker1.CancelAsync()

1

編集

2016/08/14 04:58

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -48,6 +48,7 @@
48
48
  Public Class frmMain
49
49
  private lst As List(Of bean) = Nothing
50
50
  Private Sub btnStart_Click(sender As Object, e As EventArgs) Handles btnStart.Click
51
+ BackgroundWorker1.WorkerSupportsCancellation = True
51
52
  BackgroundWorker1.WorkerReportsProgress = True
52
53
  BackgroundWorker1.RunWorkerAsync()
53
54
  End Sub
@@ -66,15 +67,24 @@
66
67
  BackgroundWorker1.ReportProgress(0, lst)
67
68
  Threading.Thread.Sleep(60000)
68
69
  End While
70
+
71
+
72
+ e.Result = lst
69
73
  End Sub
70
74
  Private Sub BackgroundWorker1_ProgressChanged(
71
75
  ByVal sender As Object,
72
76
  ByVal e As ProgressChangedEventArgs) _
73
77
  Handles BackgroundWorker1.ProgressChanged
78
+ Dim lst As List(Of bean) = DirectCast(e.UserState, List(Of bean))
74
79
  For Each r As bean In lst
75
80
  Dim rResult As Control() = Controls.Find("txtBox" & r.No, True)
76
81
  CType(rResult(0), TextBox).Text = r.Result
77
82
  Next
78
83
  End Sub
84
+
85
+ Private Sub btnStop_Click(sender As Object, e As EventArgs) Handles btnStop.Click
86
+ 'ストップボタンでBackgroundWorkerを停止させたい
87
+ BackgroundWorker1.CancelAsync()
88
+ End Sub
79
89
  End Class
80
90
  ```