Bagikan melalui


Process.SynchronizingObject Properti

Definisi

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.

Berlaku untuk

Lihat juga