Есть ли способ сделать это (код psedo):
GetCurrentThread().Items.Add(new RefObject);
, а затем извлечь его
RefObject[] refObjs = GetCurrentThread().Items;
и перечислить объекты.Очевидно, что оба вызова будут происходить в одном и том же потоке в течение его жизненного цикла.
Основная идея заключается в том, что я могу легко идентифицировать элементы для текущего потока и они фактически созданы в этом потоке.Это то же самое, что использование объекта Page.Request
для запроса ASP.NET - вы знаете, что он очень уникален в рабочем процессе, поэтому он не смешивается с другими запросами, которые обрабатываются одновременно.Я хочу обработать поток как Page.Request
- он приходит и уходит, но пока он жив, я могу запросить его по желанию, не заботясь о других угрозах, которые существуют в процессе.
Однажды я сделал нечто похожее, но это было скорее симуляция путем маршалинга объектов по ссылке.И я могу придумать еще пару способов сделать это, но я действительно не хочу вручную сохранять отображение между потоком и объектом.Разве нет ничего похожего на TransactionScope для потоков в .NET ?Я не слишком заинтересован в том, чтобы справляться с трудностями синхронизации и избегать условий гонки.
PS: Если это недоступно, могу ли я сделать это хотя бы для домена приложения без статических переменных