Some times, we like to talk about multi thread. But here today, I`d like to show a sample to explain the relationship of different process.
To simplify the sample, we assume that each process include one thread process in itself.
1. First show the main method
As the following source Code, the main thread went to into fModeDisp.ShowDialog() after it start a process. So there another thread was used to treat the process with FileName of sPrgName.
1. Before start the p(new process), we set fModeDisp into p.SynchronizingObject, so that we call make a connection between p and main thread.
2. Then set fModeDisp.P_Exited into p.Exited, so that when the p process was exited, it will call into the fModeDisp.
public void DoProcess()
{
Now, let`s the P_Exited method in frmModeDisp class. Here this method will try to kill the fModeDisp class.
1. When the p thread callback into frmModeDisp, the sender itself is the process in the main.
2. As the process in DoProcess has subscribed before, "p.SynchronizingObject = fModeDisp;" have create a connection between p process and
the frmModeDisp main thread. So at the end of P_Exited. We call this.Close(), so p process has the authority to utilize the resource in frmModeDisp . Here is the key point.
public void P_Exited(object sender, EventArgs e)