Nếu bạn sử dụng thư viện Công việc (PTL), bạn sẽ không cần phải lo lắng về điều này. Bạn có thể đọc thêm về nó here. Tóm lại:
TPL quy mô mức độ sử dụng đồng thời để sử dụng hiệu quả nhất tất cả các bộ xử lý có sẵn. Bên cạnh đó, TPL xử lý các phân vùng của công việc ...
Chúng tôi đã tạo một wrapper xung quanh công tác như sau:
public static class PeriodicTaskFactory
{
public static Task Start(Action action, int intervalInMilliseconds = -1, int delayInMilliseconds = 0, int duration = -1, int maxIterations = -1, bool synchronous = false, CancellationToken cancelToken = null, TaskCreationOptions periodicTaskCreationOptions = TaskCreationOptions.None);
}
Và sau đó chúng tôi gọi nó là như vậy. Trong trường hợp này, công việc duy nhất chúng tôi muốn thực hiện là gọi một phương thức duy nhất cứ sau 1 phút, với độ trễ 1 giây trong lần thực hiện đầu tiên.
PeriodicTaskFactory.Start(() =>
{
CdClMappingLogic.Invoke();
}, 60000, 1000, -1, -1, true)
Nguồn
2013-08-05 13:39:14
Như tôi đã hiểu, một chuỗi được quản lý thậm chí không nhất thiết phải chạy trên chuỗi gốc riêng của nó. Vì vậy, tôi nghĩ câu trả lời cho câu hỏi của bạn là "không". – ken
Một tác vụ hoạt động rất giống như một luồng mà lõi nó chạy trên (tôi tin). Để trả lời các câu hỏi của bạn, nó phụ thuộc vào những gì các nhiệm vụ của bạn đang làm mà tài nguyên là họ sử dụng nhiều nhất của CPU/IO/Memory/Disk ...? – TheKingDave
Nhiệm vụ có thể nhảy từ lõi này sang lõi khác. Điều bạn nên thực sự hỏi là "một nhiệm vụ có chạy trên nhiều lõi không?". Số –