Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Aşağıdaki API'ler .NET 5'te başlayarak kullanım dışı olarak işaretlenir. Bu API'lerin kullanılması derleme zamanında SYSLIB0006 uyarı ve çalışma zamanında PlatformNotSupportedException oluşturur.
Geçerli iş parçacığı dışında bir iş parçacığını sonlandırmak için Thread.Abort çağırdığınızda, hangi kodun yürütüldüğünü veya yürütülmediğini ve ThreadAbortException atıldığında ne zaman olduğunu bilmezsiniz. Ayrıca uygulamanızın durumundan veya korumadan sorumlu olduğu herhangi bir uygulama ve kullanıcı durumundan da emin olamazsınız. Örneğin, Thread.Abort çağrısı yapmak, statik oluşturucuların yürütülmesini veya yönetilen ya da yönetilmeyen kaynakların serbest bırakılmasını engelleyebilir. Bu nedenle Thread.Abort her zaman .NET Core ve .NET 5+ üzerinde bir PlatformNotSupportedException fırlatır.
Geçici Çözümler
CancellationToken kullanarak bir iş birimini durdurun, işleme çağrısını Thread.Abort yapmayın. Aşağıdaki örnekte kullanımı gösterilmektedir CancellationToken.
void ProcessPendingWorkItemsNew(CancellationToken cancellationToken)
{
if (QueryIsMoreWorkPending())
{
// If the CancellationToken is marked as "needs to cancel",
// this will throw the appropriate exception.
cancellationToken.ThrowIfCancellationRequested();
WorkItem work = DequeueWorkItem();
ProcessWorkItem(work);
}
}
Uyarıyı gizleme
Eski API'leri kullanmanız gerekiyorsa, uyarıyı kodda veya proje dosyanızda gizleyebilirsiniz.
Yalnızca tek bir ihlali engellemek için, önişlemci yönergelerini kaynak dosyanıza ekleyerek uyarıyı devre dışı bırakın ve sonra yeniden etkinleştirin.
// Disable the warning.
#pragma warning disable SYSLIB0006
// Code that uses obsolete API.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB0006
Projenizdeki tüm SYSLIB0006 uyarılarını engellemek için proje dosyanıza bir <NoWarn> özelliği ekleyin.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<NoWarn>$(NoWarn);SYSLIB0006</NoWarn>
</PropertyGroup>
</Project>
Daha fazla bilgi için bkz. uyarıları gizleme.