草庐IT

use_file

全部标签

C# 退出 using() block ,线程仍在作用域对象上运行

如果线程正在运行通过退出usingblock释放的对象中的方法,线程会发生什么情况?示例:using(SomeObjectobj=newSomeObject()){obj.param=10;ThreadnewThread=newThread(()=>{obj.Work();});newThread.Start();}...obj.Work()在新线程上运行,但obj是一个IDisposable对象,通常会在usingblock退出时释放。如果线程在usingblock结束后继续运行会怎样?只有在线程完成后对象才会被释放吗?还是会断线?谢谢。 最佳答案

C# 线程 : Using Monitor. 等待、锁定和 PulseAll

我是CSharp和线程的新手。为了熟悉Monitor.Wait、Monitor.lock和Monitor.PulseAll,我构建了一个场景描述如下。“一个FootballGround由不同的球队共享用于练习目的。任何时候只有一个球队可以使用field进行练习。一个团队可以使用field进行30分钟的练习。一旦时间达到25分钟,它应该向其他球队发出信号地面将在5分钟后释放的线程。本地面潮湿时(枚举有三个值free、alloted、wet)不允许任何团队锁定地面,所有人都应等待10分钟”老实说,我不知道如何将描述转化为实际编码。根据我的理解,我设计了大纲。namespaceThreadi

c# - 带有 Attach() 的 LINQ To SQL 异常 : Cannot add an entity with a key that is already in use

考虑这个典型的断开连接的场景:使用LINQToSQL从SQLServer加载客户对象用户编辑实体,表示层发回修改后的实体。数据层,使用L2S,必须将更改发送到SQLServer考虑这个LINQToSQL查询,其目的是获取客户实体。CustcustOrig=db.Custs.SingleOrDefault(o=>o.ID==c.ID);//gettheoriginaldb.Custs.Attach(c,custOrig);//wedon'thaveaTimeStamp=Truepropertydb.SubmitChanges();DuplicateKeyException:Cannota

c# - 如何修复 "The requested resource is in use. (Exception from HRESULT: 0x800700AA)"

我该如何解决这个错误?"Therequestedresourceisinuse.(ExceptionfromHRESULT:0x800700AA)".这在使用C#.NET中的WebBrowser控件导航到其他网站时出现。为什么? 最佳答案 如果当前正在处理导航操作,或者控件中的任何阻止对话框当前处于打开状态(包括上下文菜单、Javascript警报、NTLM登录对话框等),则WebBrowser控件被视为“正在使用”。您可以使用WebBrowser.IsBusy属性来检测这些状态。如果由于当前导航操作不完整,您可以尝试停止当前导航(

c# - Entity Framework : The context is being used in Code First mode with code that was generated from an EDMX file

我正在使用EF6数据库优先方法开发一个WPF应用程序,我的解决方案中有一个项目,如果我运行我的项目,这个错误总是出现。上下文在代码优先模式下使用,代码是从数据库优先或模型优先开发的EDMX文件生成的。这将无法正常工作。要解决此问题,请不要删除引发此异常的代码行。如果您希望使用数据库优先或模型优先,请确保EntityFramework连接字符串包含在启动项目的app.config或web.config中。如果您要创建自己的DbConnection,请确保它是一个EntityConnection而不是其他类型的DbConnection,并且您将它传递给采用DbConnection的基本Db

c# - 串口通信 : polling serial port vs using serial port DataReceived event

我只是在回顾我在CF2.0上用C#编写的与串行端口通信的一些代码。我没有使用DataReceived事件,因为它不可靠。MSDNstatesthat:TheDataReceivedeventisnotgauranteedtoberaisedforeverybytereceived.UsetheBytesToReadpropertytodeterminehowmuchdataislefttobereadinthebuffer.我用read()轮询端口,并有一个委托(delegate)在读取数据时处理数据。我还在某处读到“轮询不好”(没有给出解释)。知道轮询为什么不好吗?除了通常的线程警告

c# - 类似于 "using"的东西,它会创建一个对象并在完成后调用它的方法,但让我在两者之间做我想做的事

我正在使用Lidgren,对于我发出的每一种新消息,我最终都会编写相同类型的代码。我正在创建NetOutgoingMessage的实例,对其运行各种赋值调用,然后在完成后发送它。创建和发送是一样的,所以我想写一个包装器来为我做这件事,但它是一个sealed类而且它不是IDisposable。我正在做的是这样的:NetOutgoingMessageom=server.CreateMessage();om.Write(messageType);om.Write(data1);om.Write(data2);server.SendMessage(om,server.Connections,N

c# - 当路径太长时,File.Exists() 错误地返回 false

我目前正在开发一个遍历各种目录的程序,以确保使用File.Exists()存在特定文件。应用程序一直声称某些文件不存在,而实际存在,我最近发现这个错误是由于路径太长造成的。我知道有一些关于SO的问题可以解决File.Exists()返回不正确的值,但似乎没有一个可以解决这个特定问题。重命名目录和文件以缩短路径并不是一个真正的选择,所以我现在不确定该怎么做。是否有解决此问题的变通方法?正在使用的代码没什么特别的(我删除了一些不相关的代码),但我会在下面包含它以防万一。privatevoidcheckFile(stringpath){if(!File.Exists(path))Consol

c# - "Program Files"文件夹下的文件写权限问题

我正在使用innosetup为我的应用程序制作安装包,我的应用程序是由C#+.Net2.0+VSTS2008编写的。Innosetup=>http://www.jrsoftware.org/isinfo.php我将我的应用程序安装在ProgramFiles/Foo文件夹下(Foo是我的应用程序名称)。我的应用程序面向WindowsVista。我发现的问题是我的程序无法写入文件夹ProgramFiles/Foo。而且我需要写入此文件夹的权限才能保存一些配置文件。我注意到的奇怪的事情是文件夹ProgramFiles/Foo被标记为只读,我检查了ProgramFiles下的所有文件夹都被标记

c# - LINQ 和 XDocument : How to create XML file?

我在C#中有一个三个列表,变量名称是l_lstData1、l_lstData2、l_lstData3。文件结构为3个List的取值如下:l_lstData1[0]="India";l_lstData1[1]="chennai";l_lstData1[2]="hyderabad";l_lstData1[3]="calcutta";所以上面的XML(element:Data)的level属性的值为="2"。l_lstData2[0]="vijayawada";l_lstData2[1]="cochin";所以上面的XML(element:Data)的level属性的值为="1"。l_lst