Bỏ qua để tới nội dung chính
Đăng nhập với Microsoft
Đăng nhập hoặc tạo một tài khoản.
Xin chào,
Chọn một tài khoản khác.
Bạn có nhiều tài khoản
Chọn tài khoản bạn muốn đăng nhập.

Triệu chứng

.NET Framework 4.6 vào enum gõ giá trị mới, RunContinuationsAsynchronously, TaskCompletionSource và TaskCreationOptions enums. Giá trị này áp dụng tác vụ để chạy không đồng bộ và điều này giúp tránh trường hợp gián đoạn. Tuy nhiên, sự cố đã được phát hiện, đối với một số loại cụ thể continuations (trong đặc biệt khi Task.WhenAll, Task.WhenAnyhoặc TaskExtensions.Unwrap tạo các continuations), tuỳ chọn sẽ bị bỏ qua. Do đó, continuations có thể vẫn chạy đồng bộ.

Mẫu sau hiển thị các vấn đề. Nếu giá trị RunContinuationsAsynchronously đã hoạt động bình thường, hai luồng ID được in ra không bao giờ sẽ giống nhau, vì tiếp tục sẽ luôn được sắp xếp vào các chủ đề khác nhau.

using System;using System.Threading;
using System.Threading.Tasks;

class Program
{
static void Main()
{
var mres = new ManualResetEventSlim();

Console.WriteLine(Environment.CurrentManagedThreadId);

var tcs = new TaskCompletionSource<bool>(TaskCreationOptions.RunContinuationsAsynchronously);

var t = Task.WhenAll(tcs.Task);

t.ContinueWith(delegate
{
Console.WriteLine(Environment.CurrentManagedThreadId);
mres.Set();
}, TaskContinuationOptions.ExecuteSynchronously);

tcs.SetResult(true);
mres.Wait();
}
}

Giải pháp

Hiện không có giải pháp cho vấn đề này. Microsoft .NET Framework nhóm đang làm việc trên một giải pháp bao gồm trong bản Cập Nhật trong tương lai.


Bạn cần thêm trợ giúp?

Bạn muốn xem các tùy chọn khác?

Khám phá các lợi ích của gói đăng ký, xem qua các khóa đào tạo, tìm hiểu cách bảo mật thiết bị của bạn và hơn thế nữa.

Cộng đồng giúp bạn đặt và trả lời các câu hỏi, cung cấp phản hồi và lắng nghe ý kiến từ các chuyên gia có kiến thức phong phú.

Thông tin này có hữu ích không?

Bạn hài lòng đến đâu với chất lượng dịch thuật?
Điều gì ảnh hưởng đến trải nghiệm của bạn?
Khi nhấn gửi, phản hồi của bạn sẽ được sử dụng để cải thiện các sản phẩm và dịch vụ của Microsoft. Người quản trị CNTT của bạn sẽ có thể thu thập dữ liệu này. Điều khoản về quyền riêng tư.

Cảm ơn phản hồi của bạn!

×