The application consist of 3 thread
1. Main thread ----- handle UI,
2. Twe background thread
ImageLoadBackgroundWorker: read Bitmap to 3 dimension binary matrix
EncodeBackgroundWorker: jpeg transmission.
About 2 background thread:
System.ComponentModel.BackgroundWorker : This is a controller toolbox
In MSDN: BackgroundWoker Class
Executes an operation on a seperate thread.
Methods: RunWorkerAsync([object]) Starts execution of a background operation
Preperties: IsBusy : Gets a value indicating whether the BackgroundWorker is runing as asynchronous operation.
Events: Dowork: occurs when RunWorkerAsync is called.
RunWorkerCompleted : Cccurs when the background operation has completed, has been canceled, or has raised an exception.
The architecture of the APP
open_Click() : open Image Files
ImageLoadBackgroundWorker.RunWorkAsync(ture) : activate thread: convert Bitmap to a 3 dimension byte[ , , ] matrix.
writeCurrentImageButton_Click() : save the specific files
EncdeBackgroundWorker.RunWorkerAsync(ture) : Activate thread: convert byte matrix to Jpeg file.
FileStream fs = new FileStream(OutputFileName, FileMode.Create, FileAccess.Write, FileShare.None);
BinaryWriter bw = new BinaryWriter(fs);
using the BinaryWriter.Write to put the convert data into file.