блокировка должна использоваться вокруг кода, который изменяет общее состояние, заявите, что это изменяется другими потоками одновременно, и те другие шаги должны взять ту же блокировку.
блокировка А является на самом деле сериализатором доступа к памяти, потоки (которые берут блокировку), будет ожидать на блокировке для ввода, пока текущий поток не выходит из блокировки, таким образом, доступ к памяти сериализируется.
Для ответа Вы подвергаете сомнению блокировку, не нужно в единственном потоковом приложении, и она действительно имеет побочные эффекты производительности. потому что привязывается, C# основаны на объектах синхронизации ядра и каждой блокировке, которую Вы берете, создает переход к привилегированному режиму от непривилегированного режима.
, Если Вы интересуетесь выполнением многопоточности, хорошее место для запуска MSDN, распараллеливающий инструкции
строка не может быть привязана самостоятельно, поэтому она не считается зависимостью. Когда запускается средство оценки .ctor, оно будет оценивать значение .ctor по умолчанию и строку .ctor одинаково, поскольку зависимость не может быть разрешена. Вы можете исправить это, присвоив своей строке .ctor
[Inject]
public TestClass(string message){...}
, и ваш код будет работать нормально.