Есть класс:
class Foo : IDisposable
{
void IDisposable.Dispose() { }
public void Dispose() { }
private MyObj obj = null;
...
void Run ()
{
...
obj = new MyObj();
...
}
...
}
static class Program
{
static void Main(string[] args)
{
using (Foo foo = new Foo())
{
foo.Run();
...
}
...
}
}
Метод Run с помошью Invoke исполняется другом потоке, и там же создается экземпляр obj.
Далее работа Foo предполагается в основном потоке.
В с++ при разрушении obj произошло бы исключения изза того что obj был создан на другой куче.
Насколько правомерен и корректен(мало ли
подобный код в .NET, и какими последствиями чреват такой код, если он некорректен?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>