1
1
using System ;
2
2
using System . Collections ;
3
3
using System . Collections . Generic ;
4
+ using System . ComponentModel ;
4
5
using System . Diagnostics ;
5
6
using System . Drawing ;
6
7
using System . Drawing . Imaging ;
@@ -270,6 +271,7 @@ public void Dispose()
270
271
271
272
// Stop Target change image worker thread
272
273
targetChangeImageEnabled = false ;
274
+ TargetChangeImageWorker . CancelAsync ( ) ;
273
275
274
276
// Stop API server
275
277
StopAPIserverThread ( ) ;
@@ -281,6 +283,7 @@ public void Dispose()
281
283
/// Generate all targets and initialise them.
282
284
/// </summary>
283
285
/// <returns></returns>
286
+ BackgroundWorker TargetChangeImageWorker = new BackgroundWorker ( ) ;
284
287
285
288
public void Initialise ( )
286
289
{
@@ -292,11 +295,12 @@ public void Initialise()
292
295
}
293
296
}
294
297
295
- // Start Target change image worker thread
296
298
targetChangeImageEnabled = true ;
297
- Thread t = new Thread ( TargetChangeImageWorker ) ;
298
- t . IsBackground = true ;
299
- t . Start ( ) ;
299
+
300
+ TargetChangeImageWorker . WorkerReportsProgress = false ;
301
+ TargetChangeImageWorker . WorkerSupportsCancellation = true ;
302
+ TargetChangeImageWorker . DoWork += TargetChangeDoWork ;
303
+ TargetChangeImageWorker . RunWorkerAsync ( ) ;
300
304
301
305
// Start API server
302
306
apiServerLock = false ;
@@ -755,7 +759,7 @@ private void SendPixelData(byte[] pixelData, byte[] bmiInfoHeader, bool force =
755
759
targetChangeImageQueue . Enqueue ( data ) ;
756
760
}
757
761
758
- private void TargetChangeImageWorker ( )
762
+ private void TargetChangeDoWork ( object sender , DoWorkEventArgs e )
759
763
{
760
764
ChangeImageData data ;
761
765
0 commit comments