我创建了相同的自定义控件,在其中一些控件中我使用 Device.BeginInvokeOnMainThread 但有时它会引发错误:
System.NullReferenceException:未将对象引用设置为对象的实例
阅读后立即发生此错误Device.BeginInvokeOnMainThread,但如果我将其替换为MainThread.BeginInvokeOnMainThread工作正常。
部分代码如果是这样的:
public class EntryRoundPassword : RelativeLayout
{
public EntryRoundPassword() : base()
{
// throws an error
Device.BeginInvokeOnMainThread(() =>
{
......
});
//works ok
MainThread.BeginInvokeOnMainThread(() =>
{
.....
});
}
}
Run Code Online (Sandbox Code Playgroud)
它们之间有什么区别,因为一个抛出错误而另一个则不抛出错误?
MainThread是 的一部分Essentials,并且是较新的实现。该Device实现最终将被弃用。如果想了解具体的实现差异可以查看源码
| 归档时间: |
|
| 查看次数: |
3619 次 |
| 最近记录: |