在异步线程中分配对象?

时间:2018-08-01 11:48:49

标签: c# asynchronous managed-c++

我正在使用托管C ++和C#。我的以下代码有问题。

var t1 = {
    x: 1
}

var t2 = {}

Object.defineProperty(t2, 'y', {
    value: 2,
    configurable: false,
    writable: false
});

Object.setPrototypeOf(t1, t2);

t1.y = 100;
t1.y; --> returns 2
Object.defineProperty(t1, 'y', { value: 100 });
t1.y; --> return 100

当我在异步线程(UI线程)中分配//In C++, Run on background thread (not UI Thread) while(true) { BitmapSource^ bitmapSource = CreateBitmap(); bitmapSource->Freeze(); CSWrapperFuntion(bitmapSource); //this is a function pointer to C# } //In C#, Interface Project void CSWrapperFuntion(Object param) { mainWindow.Dispatcher.BeginInvoke(new Action(delegate() { BitmapSource bitmap = (BitmapSource)param; if (bitmap != null) { //Use this bitmap to display on UI Control } })); } 时,使用此位图对象是否有任何问题?

在BeginInvoke的主体中,也许Object参数超出范围,并且是GC销毁了?

我对C#的这种情况一无所知,因此我无法猜测将来会出现任何问题。

有人可以在此代码中向我展示潜在的错误吗?

非常感谢!

0 个答案:

没有答案