Process.SynchronizingObject Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mendapatkan atau mengatur objek yang digunakan untuk melakukan marshal panggilan penanganan aktivitas yang dikeluarkan sebagai akibat dari peristiwa keluar proses.
public:
property System::ComponentModel::ISynchronizeInvoke ^ SynchronizingObject { System::ComponentModel::ISynchronizeInvoke ^ get(); void set(System::ComponentModel::ISynchronizeInvoke ^ value); };
public System.ComponentModel.ISynchronizeInvoke? SynchronizingObject { get; set; }
public System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get; set; }
[System.ComponentModel.Browsable(false)]
public System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get; set; }
member this.SynchronizingObject : System.ComponentModel.ISynchronizeInvoke with get, set
[<System.ComponentModel.Browsable(false)>]
member this.SynchronizingObject : System.ComponentModel.ISynchronizeInvoke with get, set
Public Property SynchronizingObject As ISynchronizeInvoke
Nilai Properti
Panggilan ISynchronizeInvoke yang digunakan untuk marshal penanganan aktivitas yang dikeluarkan sebagai akibat dari Exited peristiwa pada proses.
- Atribut
Contoh
private MyButton button1;
private void button1_Click(object sender, System.EventArgs e)
{
using (Process myProcess = new Process())
{
ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("mspaint");
myProcess.StartInfo = myProcessStartInfo;
myProcess.Start();
myProcess.Exited += new EventHandler(MyProcessExited);
// Set 'EnableRaisingEvents' to true, to raise 'Exited' event when process is terminated.
myProcess.EnableRaisingEvents = true;
// Set method handling the exited event to be called ;
// on the same thread on which MyButton was created.
myProcess.SynchronizingObject = button1;
MessageBox.Show("Waiting for the process 'mspaint' to exit....");
myProcess.WaitForExit();
}
}
private void MyProcessExited(Object source, EventArgs e)
{
MessageBox.Show("The process has exited.");
}
}
public class MyButton : Button
{
}
Private button1 As MyButton
Private Sub button1_Click(sender As Object, e As EventArgs)
Using myProcess As New Process()
Dim myProcessStartInfo As New ProcessStartInfo("mspaint")
myProcess.StartInfo = myProcessStartInfo
myProcess.Start()
AddHandler myProcess.Exited, AddressOf MyProcessExited
' Set 'EnableRaisingEvents' to true, to raise 'Exited' event when process is terminated.
myProcess.EnableRaisingEvents = True
' Set method handling the exited event to be called ;
' on the same thread on which MyButton was created.
myProcess.SynchronizingObject = button1
MessageBox.Show("Waiting for the process 'mspaint' to exit....")
myProcess.WaitForExit()
End Using
End Sub
Private Sub MyProcessExited(source As Object, e As EventArgs)
MessageBox.Show("The process has exited.")
End Sub
End Class
Public Class MyButton
Inherits Button
End Class
Keterangan
Kapan SynchronizingObject , nullmetode yang menangani Exited peristiwa dipanggil pada utas dari kumpulan utas sistem. Untuk informasi selengkapnya tentang kumpulan utas sistem, lihat ThreadPool.
Ketika peristiwa ditangani Exited oleh komponen Visual Windows Forms, seperti Button, mengakses komponen melalui kumpulan utas sistem mungkin tidak berfungsi, atau mungkin mengakibatkan pengecualian. Hindari ini dengan mengatur SynchronizingObject ke komponen Windows Forms, yang menyebabkan metode yang menangani Exited peristiwa dipanggil pada utas yang sama tempat komponen dibuat.
Process Jika digunakan di dalam Visual Studio 2005 dalam desainer Windows Forms, SynchronizingObject secara otomatis diatur ke kontrol yang berisi Process. Misalnya, jika Anda menempatkan Process pada perancang untuk Form1 (yang mewarisi dari Form) SynchronizingObject properti Process diatur ke instans Form1:
process1.StartInfo.Domain = "";
process1.StartInfo.LoadUserProfile = false;
process1.StartInfo.Password = null;
process1.StartInfo.StandardErrorEncoding = null;
process1.StartInfo.StandardOutputEncoding = null;
process1.StartInfo.UserName = "";
process1.SynchronizingObject = this;
process1.StartInfo.Domain <- "";
process1.StartInfo.LoadUserProfile <- false;
process1.StartInfo.Password <- null;
process1.StartInfo.StandardErrorEncoding <- null;
process1.StartInfo.StandardOutputEncoding <- null;
process1.StartInfo.UserName <- "";
process1.SynchronizingObject <- this;
process1.StartInfo.Domain = ""
process1.StartInfo.LoadUserProfile = False
process1.StartInfo.Password = Nothing
process1.StartInfo.StandardErrorEncoding = Nothing
process1.StartInfo.StandardOutputEncoding = Nothing
process1.StartInfo.UserName = ""
process1.SynchronizingObject = Me
Biasanya, properti ini diatur ketika komponen ditempatkan di dalam kontrol atau formulir, karena komponen tersebut terikat ke utas tertentu.