Tag: c# 4.0

使用TaskScheduler.FromCurrentSynchronizationContext更新Task中的UI

我想使用Task将一些文本添加到列表框中,我只需使用一个按钮并在单击事件中放置此代码: TaskScheduler uiScheduler = TaskScheduler.FromCurrentSynchronizationContext(); Task.Factory.StartNew(() => { for (int i = 0; i < 10; i++) { listBox1.Items.Add("Number cities in problem = " + i.ToString()); System.Threading.Thread.Sleep(1000); } }, CancellationToken.None, TaskCreationOptions.None, uiScheduler); 但是直到for循环结束它才能工作并且UI被锁定。 问题出在哪儿 ? 谢谢 :)

Task.WaitAll不等待子任务?

你好我有_noOfThreads作为定义的任务一次运行。 所以我继续使用%运算符继续执行任务,在循环结束时我有Tasks.WaitAll 。 这是代码片段。 for (int index = 0; index < count; index++) { if (index { foo.bar(); }, TaskContinuationOptions.AttachedToParent); } Task.WaitAll(tasks); 但是,我注意到它不等待子任务完成。 父任务完成后, Task.WaitAll执行后的下一行。 如何更改此代码以等待子任务?

C#4.0 / EF – SQL Server Compact不支持服务器生成的密钥和服务器生成的值

我刚刚将我的一个项目移动到VS2010 / fx4.0中,并使用SQL CE数据库作为后备存储。 自从将其移至此版本的.NET后,我现在收到此错误: SQL Server Compact不支持服务器生成的密钥和服务器生成的值。 我的表是用UserName(字符串)和DoorOpen(datetime)的PK定义的,因为SQLCE 要求 fx3.5中的每个表都有一个PK。 现在我在fx4.0中,我很难过。 我用Google搜索了这个,我找到的每个答案都是: SQLCE不支持自动生成值(我当然不需要),因此在其上放置一个GUID ID并从代码中填充它。 我试过这种方法,我仍然得到同样的错误! SQLCE: CREATE TABLE [ImportDoorAccesses] ( [RawData] nvarchar(100) NOT NULL, [DoorOpen] datetime NOT NULL, [UserName] nvarchar(100) NOT NULL, [CardNumber] bigint NOT NULL, [Door] nvarchar(4000) NOT NULL, [Imported] datetime NOT NULL, [ID] uniqueidentifier NOT NULL — new column ); ALTER TABLE […]

使用.net 4.0引用Windows shell接口

我使用以下代码来引用shell DLL Type t = Type.GetTypeFromProgID(“Shell.Application”); Shell s = (Shell)Activator.CreateInstance(t); Console.WriteLine(“success”); Console.ReadLine(); 它在我的Windows 7开发机器上工作正常。但是当我尝试在Win 2003服务器上运行exe时,我得到了这个exception Unable to cast COM object of type ‘System.__ComObject’ to interface type ‘Shell3 2.Shell’. This operation failed because the QueryInterface call on the COM compo nent for the interface with IID ‘{866738B9-6CF2-4DE8-8767-F794EBE74F4E}’ failed due to the following error: No such interface […]

FileStream包含锁定文件

我想知道是否有可能将readonly FileStream变为锁定文件? 我现在尝试读取锁定的文件时出现exception。 using (FileStream stream = new FileStream(“path”, FileMode.Open)) 谢谢!

在C#中处理大型文本文件

我有4GB +文本文件(csv格式),我想在c#中使用linq处理这个文件。 我在加载csv后运行复杂的linq查询并转换为类? 但是文件大小是4GB,尽管应用程序内存是文件的双倍大小。 我如何处理(linq和新结果)大文件? 谢谢

为什么在将类转换为未实现的接口时没有编译器错误?

如果我尝试从类到接口的无效转换,那么编译器不会抱怨(错误发生在运行时); 但是,如果我尝试对抽象类进行类似的转换,它会抱怨。 class Program { abstract class aBaz { public abstract int A { get; } } interface IBar { int B { get; } } class Foo { public int C { get; } } static void Main() { Foo foo = new Foo(); // compiler error, as expected, since Foo doesn’t inherit aBaz […]

C#动态对象初始值设定项不会编译

以下代码对我来说似乎很合理。 它应该创建对象,然后使用动态function让我分配我喜欢的任何属性。 但是编译器说“ExpandoObject不包含Test的定义”。 对此我说,“我知道,这是一个怪胎!” dynamic example = new ExpandoObject { Test = “fail” }; 任何想法为什么csc不允许这样做。 另一种方法是手动将代码扩展为单独的属性分配。 dynamic example = new ExpandoObject(); example.Test = “fail”; 当我有很多要分配的属性时,这很烦人。

任务找不到“AxImp.exe”

我向appharbor上传了一个.NET 4 C#解决方案,但是当appharbor尝试构建它时,其中一个c#类库会生成此错误: 项目“D:\ temp \ cbymsn2u.j0c \ input \ UI \ Tray \ Tray.csproj”正在构建“D:\ temp \ cbymsn2u.j0c \ input \ Business \ Crawler \ Crawler.csproj”(GetNativeManifest target(s)) :c:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets(1558,9):警告MSB3084:任务尝试在两个位置查找“AxImp.exe”。 1)在基于SdkToolsPath生成的“C:\ Program Files \ Microsoft SDKs \ Windows \ v7.0A \ bin \ NETFX 4.0 Tools \”处理器特定目录下2)“C:\ Program […]

validationXDocument时捕获架构信息

这类似于这个问题C#在validationxml时获取模式信息 但是,我正在使用XDocument进行LINQ目的。 我正在读取/解析一组CSV文件并转换为XML,然后根据XSD架构validationXML。 我想捕获与元素值相关的特定错误,生成更加用户友好的消息,并将它们返回给用户,以便可以更正输入数据。 我想在输出数据中包含的项目之一是一些架构信息(例如数字类型的可接受值的范围)。 在我目前的方法(我愿意改变)中,除了架构信息之外,我能够捕获我需要的一切。 我已经尝试访问Validation事件处理程序的ValidationEventArgs参数中的SourceSchemaObject ,但它始终为null。 我也尝试过XElement的GetSchemaInfo ,看起来也是null。 我正在使用RegEx来识别我想要捕获的特定validation错误,并通过validation事件处理程序的sender参数从XElement中获取数据。 我曾想过将模式转换为XDocument并通过LINQ获取我需要的东西,但在我看来应该有更好的选择 这是我目前的validation方法: private List this.validationWarnings; private XDocument xDoc; private XmlSchemaSet schemas = new XmlSchemaSet(); public List Validate() { this.validationWarnings = new List(); // the schema is read elsewhere and added to the schema set this.xDoc.Validate(this.schemas, new ValidationEventHandler(ValidationCallBack), true); return validationWarnings } 这是我的回调方法: private void […]