Her 1 saniyede bir işlev çalıştırmak istiyorum, 10 saniye sonra 10 kez çalıştırılır. en basit yaklaşım böyle bir döngü kullanıyor:uyku-kadar C#
while(true)
{
Thread.Sleep(1000);
function();
}
Ancak bu yaklaşım ile temel sorun, herhangi periyodik teminat vermez olmasıdır. Böyle olacak) işlevini (çalıştırmak için fonksiyonun infaz süresini 0.1 saniye sürer eğer Yani: 0, 1.1, 2.2, 3.3, 4.4, ...
Gerçek zamanlı dilinde, Hatırlayacağınız gibiADA (#time) 'a kadar bir fonksiyonumuz var. Şimdi C# 'da bir alternatif arıyorum.
Örnek kodlar atanacaktır.
Küçük örneklerde uyuyun ve kodunuzu çalıştırmadan önce bir saniyenin geçip geçmediğini kontrol edin. – VVS
Eğer işlev() yürütmek için 1 saniyeden uzun sürerse, ne yapmak istersiniz? –
C# gerçek zamanlı bir dil değil. onun, hatta başka bir iş parçacığı/süreç olabileceğinden, iş parçacığının, 1 saniye sonra tam olarak çalışacağını bile garanti etmedi. Bu kadar hassas olmanız gerekiyorsa, belki başka araçlar kullanmalısınız? – YavgenyP