1
Я следующий код запущен в Многопоточности бизнес-логике:Параллелизма в .net для функции
using System;
using System.Threading.Tasks;
namespace Test
{
class Program
{
static void Main(string[] args)
{
var biz1 = new Biz { Some = 1, Value = "a" };
var biz2 = new Biz { Some = 2, Value = "b" };
var foo = new Foo();
//thread 1
new Task(() => foo.Run(biz1)).Start();
//thread 2
new Task(() => foo.Run(biz2)).Start();
//more threads here for other Biz objects....
Console.Read();
}
}
public class Biz
{
public int Some { get; set; }
public string Value { get; set; }
}
public class Foo
{
public void Run(Biz biz)
{
//base on the biz object do some task here
}
}
}
Объект biz
НЕ изменяется в любое время в многопоточных
Вопросов:
foo.Run
нить безопасна?- Лучше создать экземпляр отдельного объекта
Foo
для запуска каждого объектаBiz
(Run
- единственная функция в пределахFoo
)?
Хорошо, что 'Foo' меняется на' Run'? –
Невозможно сказать, если foo.Run является потокобезопасным, если мы не знаем, что он на самом деле делает – ken2k
@Jon Skeet, 'Foo' НЕ изменяется с помощью' Run' – James