Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 后台工作进程中的linq to sql查询跨线程访问无效_C#_Linq_Windows Phone_Backgroundworker - Fatal编程技术网

C# 后台工作进程中的linq to sql查询跨线程访问无效

C# 后台工作进程中的linq to sql查询跨线程访问无效,c#,linq,windows-phone,backgroundworker,C#,Linq,Windows Phone,Backgroundworker,此代码引发一个System.UnauthorizedAccessException:无效的跨线程访问异常 private void DoWorker(object sender,DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; using (DbContext db = new DbContext(DbContext.littreConnectionString)) {

此代码引发一个
System.UnauthorizedAccessException:无效的跨线程访问异常

private void DoWorker(object sender,DoWorkEventArgs e)
{
    BackgroundWorker worker = sender as BackgroundWorker;

    using (DbContext db = new DbContext(DbContext.littreConnectionString))
    {
        if (db.DatabaseExists())
        {
            var searchResults = from dbObject in db.LDicTable
                                where dbObject.word == SearchBox.Text
                                select dbObject;
            if (!searchResults.Any())
            {
                wordExists = false;
            }
        }
    }
}

这是因为您无法在后台工作线程方法中访问UI线程对象,因为它在单独的线程中执行,而不是在UI线程中。因此,它在不同的线程中执行,您尝试访问UI线程对象


您必须将文本框文本存储在某个字符串中,并在方法中使用该变量

有关详细信息,请参阅以下链接:


您无法访问后台工作者dowork方法中的文本框,因为它在单独的线程中执行,而不是在UI线程中。请将文本框文本存储在某个字符串中,并在方法中使用该变量欢迎使用Stackoverflow!请指定您使用的框架。是winforms吗?“phone”标记应该是什么意思?另外,检查这个问题:对不起,我忘了提到它对于windows phone 8,dbContext是从datacontext派生的类。我已经知道我不能从doWork方法访问ui踏板,只能从事件(progress,complete)访问ui踏板但当我试图检查查询是否返回任何值时,会引发异常,