два потока, одна переменная...
От: sharcUs Беларусь http://sharcus.blogspot.com/
Дата: 18.01.07 08:32
Оценка:
Есть класс:
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>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.