- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在后台工作程序上做一些繁重的工作,因此它不会影响我的 Silverlight UI 线程。但是,在 DoWork 函数中我遇到了这个异常:
UnauthorizedAccessException
“无效的跨线程访问”。
我知道我无法从 BackgroundWorker 访问 UI 线程,但是,此异常发生在这一行:
ListBoxItem insert = new ListBoxItem();
如何访问我的 ui 线程?
这是我缩小范围后的实际代码片段。我基本上是在创建我想插入到 sourceList
列表框的列表框项目:
void FillSourceList()
{
busyIndicator.IsBusy = true;
BackgroundWorker bw = new BackgroundWorker();
bw.DoWork += (sender, args) =>
{
List<ListBoxItem> x = new List<ListBoxItem>();
for (int i = 0; i < 25; i++ )
{
ListBoxItem insert = new ListBoxItem(); //<---Getting exception here
insert.Content = "whatever";
x.Add(insert);
}
args.Result = x;
};
bw.RunWorkerCompleted += (sender, args) =>
{
foreach (ListBoxItem insert in (List<ListBoxItem>)(args.Result))
sourceList.Items.Add(insert);
busyIndicator.IsBusy = false;
};
bw.RunWorkerAsync();
}
最佳答案
ListBoxitem
派生自 Control,因此它被视为 GUI 的一部分。我原以为“分离”的项目在线程中也可以,但显然不是。
显而易见的解决方案:构建一个包含内容(字符串)的列表 x
并将 Items 的创建延迟到 Completed 事件。
关于c# - 在不访问 UI 线程的情况下在 BackgroundWorker 中获取 "UnauthorizedAccessException",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9517757/
我在使用 NUnit 和 WatiN 运行任何测试时收到 UnauthorizedAccessException 错误: Test Test.IndexTests.Can_Do' failed: Wa
使用这段代码: DirectoryInfo info = new DirectoryInfo("\\s01\sharedfolder\folder"); FileInfo[] files = info
我正在创建一个应用程序来查找文件中的重复项。当我搜索文件时: try { string[] allFiles = Directory.GetFiles( directoryPa
我在指定位置创建一个目录,然后尝试使用 StreamWriter 访问它,但它一直显示“访问被拒绝。” 有人知道会发生什么吗? 我的代码是这样的: if (!Directory.Exists(
根据 MSDN,Directory.Exists如果目录不可访问,则应返回 false。我有一个 Directory.Exists 返回 true 但 Directory.GetFiles 抛出 Sy
我正在尝试遍历开始菜单上的项目,但我一直收到 UnauthorizedAccessException。我是目录的所有者,我的用户是管理员。 这是我的方法(它在一个 dll 项目中): // root
我有 ASP Web API,我正在尝试从那里的调用返回一个文件。 在我的服务器上,我不断收到错误: System.UnauthorizedAccessException: Access to the
我有一个简单的方法来计算目录和其中所有文件的大小。这是代码: using System; using System.IO; namespace MyProject.Libs { public
当我试图在 Registry.ClassesRoot 中创建一个子项时,我得到一个 System.UnauthorizedAccessException!我用的是win7。有谁知道为什么吗? 最佳答案
我正在 COM 端口上进行 C# 编码,我无法理解这个异常的含义,我试图在我的书和网上找到答案,但没有好消息。 所以我的问题是如何找到正确的异常名称的定义(我从网上复制了这段代码)。2. 这个前任是什
在读取或写入(创建文件)到随机文件夹时,我收到随机用户关于 UnauthorizedAccessException 的随机报告。通常放在自己的Documents文件夹中。而更多的问题是,当应用程序无法
我正在编写回归测试,需要手动将文件从一个位置移动到另一个位置。每次发生 UnauthorizedAccessException 时,我假设这与必须从中移动文件的文件夹的权限有关?我检查了文件属性,它没
我在尝试打开互斥量时遇到此异常(它只是有时发生;大多数调用都是成功的): System.UnauthorizedAccessException: Access to the path 'Global\
我有一个应用程序正在通过一些文件查找旧数据。为了确保我们不会破坏好的项目,我将文件复制到一个临时位置。我检查的一些目录是源代码目录,它们有 .svn 文件夹。我们使用 Subversion 来管理我们
偶尔,我的一些集成测试会因上述消息而失败。我正在使用下面的代码来准备端口。 for(int i = 0; i < 5; i++) {
我正在尝试通过这种方式从文件夹中获取所有文件: try { string[] files = Directory.GetFiles(folderBrowserDialog1.SelectedP
这个问题在这里已经有了答案: DeleteSubKey UnauthorizedAccessException (1 个回答) 关闭 5 年前。 我有一个 C# 应用程序,我正在尝试通过注册表编辑服
我正在尝试编写一个快应用来修改一些注册表项。当我通过 RegEdit 浏览时,我可以毫无问题地修改和删除 key 。 但是当我尝试使用 RegistryKey.DeleteSubKey() 时,它会抛
我正在研究如何将 Windows 上下文菜单中的快捷方式 添加到我的应用程序。我遇到了this文章,我试过了。这是它用于在注册表中创建 key 的代码。 private void btnAddMenu
在我拥有的 Windows 应用程序中,我在注册表中进行了一些更改,例如删除特定键,在某些测试场景中,例如在安装了 UAC 的 Vista 机器中,我得到了 System.UnauthorizedAc
我是一名优秀的程序员,十分优秀!