Giriş
Şu satırı dahil ederiz.
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Sleep (0) yield gibi çalışır. while() içindeki döngülerde işe yarar. Eğer paramtre olarak -1 veya Timeout.Infinite (yani -1) alırsa açıklaması şöyle.
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Şu satırı dahil ederiz.
using System.Threading;
ConstructorŞöyle yaparız.
Thread thread = new Thread(() =>{...});
MemoryBarrier metoduŞöyle yaparız.
int a = 5;
// on thread 1
int b = Interlocked.Add(ref a, 5); // b = 10
// on thread 2, at the same time
int c = Interlocked.Add(ref a, 5); // c = 15
// on thread 1
Thread.Sleep(1000); // so we are "sure" thread 2 executed
Thread.MemoryBarrier(); // just to be sure we are really reading a
bool x1 = (b == 10); // true
bool x2 = (a == 15); // true
SetApartmentState metoduŞöyle yaparız.
thread.SetApartmentState (ApartmentState.STA);
Interop ile erişilem COM bileşenleri STA thread kullanılmasını gerektirir. Yoksa şöyle bir hata alırız.Şöyle yaparız.Current thread must be set to single thread apartment (STA) mode before OLE calls can be made
public static Task<T> StartSTATask<T>(Func<T> func)
{
var tcs = new TaskCompletionSource<T>();
Thread thread = new Thread(() =>
{
try
{
tcs.SetResult(func());
}
catch (Exception e)
{
tcs.SetException(e);
}
});
thread.SetApartmentState(ApartmentState.STA);
thread.Start();
return tcs.Task;
}
Sleep metoduSleep (0) yield gibi çalışır. while() içindeki döngülerde işe yarar. Eğer paramtre olarak -1 veya Timeout.Infinite (yani -1) alırsa açıklaması şöyle.
This is a special case that essentially means "sleep until someone prods you" - which another thread can do by calling Thread.Interrupt(). The sleeping thread should then expect to catch a ThreadInterruptedException.SpinWait metodu
Şöyle yaparız.
Thread.SpinWait(100);
Start metodu
Şöyle yaparız.
thread.Start();
VolatileRead metodu
Şöyle yaparız.
static int stop = 0;
while (Thread.VolatileRead (ref stop) == 0){
...
}
VolatileWrite metoduŞöyle yaparız.
static int stop = 0;
Thread.VolatileWrite (ref stop, 1);
Hiç yorum yok:
Yorum Gönder