Control.BeginInvoke Yöntem

Tanım

Denetimin temel tanıtıcısının oluşturulduğu iş parçacığında zaman uyumsuz olarak bir temsilci yürütür.

Aşırı Yüklemeler

BeginInvoke(Delegate, Object[])

Denetimin temel tanıtıcısının oluşturulduğu iş parçacığında belirtilen temsilciyi belirtilen bağımsız değişkenlerle zaman uyumsuz olarak yürütür.

BeginInvoke(Action)

Denetimin temel tanıtıcısının oluşturulduğu iş parçacığında belirtilen temsilciyi zaman uyumsuz olarak yürütür.

BeginInvoke(Delegate)

Denetimin temel tanıtıcısının oluşturulduğu iş parçacığında belirtilen temsilciyi zaman uyumsuz olarak yürütür.

BeginInvoke(Delegate, Object[])

Denetimin temel tanıtıcısının oluşturulduğu iş parçacığında belirtilen temsilciyi belirtilen bağımsız değişkenlerle zaman uyumsuz olarak yürütür.

C#
public IAsyncResult BeginInvoke (Delegate method, object[] args);
C#
public IAsyncResult BeginInvoke (Delegate method, params object[] args);

Parametreler

method
Delegate

Parametresinde bulunan args aynı sayı ve türdeki parametreleri alan bir yöntem temsilcisi.

args
Object[]

Verilen yönteme bağımsız değişken olarak geçirecek bir nesne dizisi. Bu, bağımsız değişken gerekmiyorsa olabilir null .

Döndürülenler

IAsyncResult

IAsyncResult İşlemin sonucunu BeginInvoke(Delegate) temsil eden bir.

Uygulamalar

Özel durumlar

Uygun pencere tutamacı bulunamıyor.

Örnekler

Aşağıdaki kod örneği, yönteminin BeginInvoke kullanımını gösterir.

C#
public delegate void MyDelegate(Label myControl, string myArg2);

private void Button_Click(object sender, EventArgs e)
{
   object[] myArray = new object[2];

   myArray[0] = new Label();
   myArray[1] = "Enter a Value";
   myTextBox.BeginInvoke(new MyDelegate(DelegateMethod), myArray);
}

public void DelegateMethod(Label myControl, string myCaption)
{
   myControl.Location = new Point(16,16);
   myControl.Size = new Size(80, 25);
   myControl.Text = myCaption;
   this.Controls.Add(myControl);
}

Açıklamalar

Temsilci zaman uyumsuz olarak çağrılır ve bu yöntem hemen döndürür. Bu yöntemi, denetimin tanıtıcısına sahip olan iş parçacığı bile herhangi bir iş parçacığından çağırabilirsiniz. Denetimin tanıtıcısı henüz yoksa, bu yöntem pencere tutamacına sahip bir denetim veya form bulana kadar denetimin üst zincirinde arama yapar. Uygun tanıtıcı bulunamazsa bir BeginInvoke özel durum oluşturur. Temsilci yöntemindeki özel durumlar izlenmemiş olarak kabul edilir ve uygulamanın izlenmeyen özel durum işleyicisine gönderilir.

Neccesary ise, temsilciden dönüş değerini almak için çağırabilirsiniz EndInvoke , ancak bu gerekli değildir. EndInvoke dönüş değeri alınıncaya kadar engeller.

Not

Denetimdeki yöntemlerin çoğu yalnızca denetimin oluşturulduğu iş parçacığından çağrılabilir. özelliğine InvokeRequired ek olarak, bir denetimde iş parçacığı güvenli olan dört yöntem vardır: Invoke, BeginInvoke, EndInvokeve CreateGraphics denetimin tanıtıcısı zaten oluşturulmuşsa. Denetimin tanıtıcısı bir arka plan iş parçacığında oluşturulmadan önce çağrılması CreateGraphics , iş parçacıkları arası geçersiz çağrılara neden olabilir. Diğer tüm yöntem çağrıları için çağrıyı denetimin iş parçacığına sıralamak için çağırma yöntemlerinden birini kullanmanız gerekir. çağırma yöntemleri her zaman denetimin iş parçacığında geri çağırmalarını çağırır.

Not

İletiyi işlemesi gereken iş parçacığı artık etkin değilse bir özel durum oluşturulabilir.

Ayrıca bkz.

Şunlara uygulanır

.NET Framework 4.8 ve diğer sürümler
Ürün Sürümler
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
Windows Desktop 3.0, 3.1, 5, 6, 7

BeginInvoke(Action)

Denetimin temel tanıtıcısının oluşturulduğu iş parçacığında belirtilen temsilciyi zaman uyumsuz olarak yürütür.

C#
public IAsyncResult BeginInvoke (Action method);

Parametreler

method
Action

Parametre içermeyen bir yöntemin temsilcisi.

Döndürülenler

IAsyncResult

IAsyncResult İşlemin sonucunu BeginInvoke(Action) temsil eden bir.

Şunlara uygulanır

Windows Desktop 7 ve Windows Desktop 6
Ürün Sürümler
Windows Desktop 6, 7

BeginInvoke(Delegate)

Denetimin temel tanıtıcısının oluşturulduğu iş parçacığında belirtilen temsilciyi zaman uyumsuz olarak yürütür.

C#
public IAsyncResult BeginInvoke (Delegate method);

Parametreler

method
Delegate

Parametre içermeyen bir yöntemin temsilcisi.

Döndürülenler

IAsyncResult

IAsyncResult İşlemin sonucunu BeginInvoke(Delegate) temsil eden bir.

Özel durumlar

Uygun pencere tutamacı bulunamıyor.

Örnekler

Aşağıdaki kod örneği, yönteminin BeginInvoke kullanımını gösterir.

C#
public delegate void InvokeDelegate();

private void Invoke_Click(object sender, EventArgs e)
{
   myTextBox.BeginInvoke(new InvokeDelegate(InvokeMethod));
}
public void InvokeMethod()
{
   myTextBox.Text = "Executed the given delegate";
}

Açıklamalar

Temsilci zaman uyumsuz olarak çağrılır ve bu yöntem hemen döndürür. Bu yöntemi, denetimin tanıtıcısına sahip olan iş parçacığı bile herhangi bir iş parçacığından çağırabilirsiniz. Denetimin tanıtıcısı henüz yoksa, bu yöntem pencere tutamacına sahip bir denetim veya form bulana kadar denetimin üst zincirinde arama yapar. Uygun tanıtıcı bulunamazsa bir BeginInvoke özel durum oluşturur. Temsilci yöntemindeki özel durumlar izlenmemiş olarak kabul edilir ve uygulamanın izlenmeyen özel durum işleyicisine gönderilir.

Neccesary ise, temsilciden dönüş değerini almak için çağırabilirsiniz EndInvoke , ancak bu gerekli değildir. EndInvoke dönüş değeri alınıncaya kadar engeller.

Not

Denetimdeki yöntemlerin çoğu yalnızca denetimin oluşturulduğu iş parçacığından çağrılabilir. özelliğine InvokeRequired ek olarak, bir denetimde iş parçacığı güvenli olan dört yöntem vardır: Invoke, BeginInvoke, EndInvokeve CreateGraphics denetimin tanıtıcısı zaten oluşturulmuşsa. Denetimin tanıtıcısı bir arka plan iş parçacığında oluşturulmadan önce çağrılması CreateGraphics , iş parçacıkları arası geçersiz çağrılara neden olabilir. Diğer tüm yöntem çağrıları için çağrıyı denetimin iş parçacığına sıralamak için çağırma yöntemlerinden birini kullanmanız gerekir. çağırma yöntemleri her zaman denetimin iş parçacığında geri çağırmalarını çağırır.

Not

İletiyi işlemesi gereken iş parçacığı artık etkin değilse bir özel durum oluşturulabilir.

Ayrıca bkz.

Şunlara uygulanır

.NET Framework 4.8 ve diğer sürümler
Ürün Sürümler
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
Windows Desktop 3.0, 3.1, 5, 6, 7