C# 线程 文件写入操作

新建一个子线程,对一个文件进行重复的文件写入操作,现在发现运行一定时间之后,子线程报错:abortRequest,怎么样才能规避这个错误?

3个回答

是asp.net还是winforms呢?是否有窗体关闭、调用thread.abort或者进程回收发生,避免上述情形

qq_25877563
qq_25877563 asp.net 没有调用abort
大约 3 年之前 回复

代码 :

入口:

pageLib.myThread mThread = new pageLib.myThread();
Thread t = new Thread(new ThreadStart(mThread.run));
t.Start();

mThread类:

public void run(){
while(true){
try{
StreamWriter sw = new StreamWriter(@"E:\log2.txt", true);
sw.write(something);
sw.dispose();
sw.close();
}catch.....
}}

解决了,最后发现是IIS的定时回收问题。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
文件写入 C# vs2005
文件写入 C# vs2005文件写入 C# vs2005文件写入 C# vs2005文件写入 C# vs2005文件写入 C# vs2005
C# 跨线程操作UI(界面)
C# winform程序里经常会用到多线程,如果在线程的逻辑处理里面有需要刷新UI的,就需要交给委托来处理。 如下: 定义委托 private delegate void ShowDelegate(string Msg); //显示信息委托 刷新界面方法: /// /// 显示提示 /// privat
c# winform中子线程操作控件
c# 2.0中 子线程是不可以操作组件的,因为组件是主线程生成的,一切在主线程中显式生成的线程都叫做子线程。方法有2中,下面给出委托的解决办法,这个最保险:   public partial class Form1 : Form { public
C#读写XML文件
本文将会涉及3个方面的内容:          1.存取XML文件          2.XML文档对象模型          3.XML和DataSet          这里我们先介绍操作XML文件的两个对象:XmlTextReader和XmlTextWriter          打开和读取Xml文件使用到的对象就是XmlTextReader对象。下面的例子打开了与程序在同一路径下的一个例子
C#新线程中操作主线程的控件 ,解…
写一个串口,这问题从昨晚搞到今晚,网络上面一堆的解决方法都不能用,就因为使用的VisualStudio是2015版本,微软那边自顾自的修改了结构却没有提示要怎么提升到新版本的函数用法,以至于许多经验都无法直接利用,必须一步步摸索。     如果说,使用新的线程,直接操作控件,例如修改文字或者调用文字,在新线程中循环修改数值等等   例如:   void I() {  Thread Thd_Send
在C#中子线程如何操作主线程中窗体上控件
在C#中,直接在子线程中对窗体上的控件操作是会出现异常,这是由于子线程和运行窗体的线程是不同的空间,因此想要在子线程来操作窗体上的控件,是不可能简单的通过控件对象名来操作,但不是说不能进行操作,微软提供了Invoke的方法,其作用就是让子线程告诉窗体线程来完成相应的控件操作。
C# 线程间不能调用剪切板的问题
最近做一个项目,需要用到线程,而且要用到剪切板,创建了一个子线程之后发现在子线程中剪切板上获取不到数据,当时特别纳闷,上网查资料,最后终于搞定,现将解决方法归纳如下: 第一步: public void btnAutoFocus_Click(object sender,EventArgs e) { Thread myThread = new Thread(msc.AutoFocusArith
C#文件写入操作
using System; using System.IO; namespace IO操作 { class Program { static void Main(string[] args) { using(StreamWriter w=File.AppendText("IO.txt")) {
C# 进程与线程 操作
using System.Diagnostics;//进程的命名空间               //利用进程可以打开一些应用程序             Process.Start("calc"); //计算器             Process.Start("mspaint"); // 画图工具             Process.Start("notepad");// 记事
C# winform 多线程 让子线程也能操作界面的方法
C# winform 多线程 让子线程也能操作界面的方法 源代码
C#多线程与界面操作
c# delegate(委托)与多线程很多时候写windows程序都需要结合多线程,在.net中用如下得代码来创建并启动一个新的线程。public void ThreadProc();Thread thread = new Thread( new ThreadStart( ThreadProc ) );thread.IsBackground = true;thread.Start();但是很多
C# 线程使用
线程创建的关键是要给它指定一段线程要执行的代码段,这段代码可以是任意可以访问到的函数,如其它类的静态函数,自己类定义的函数.1. 先生成一个ThreadStart 类的实例,将要线程执行的代码和这个对象关联,2. 再在创建线程时的构造函数里,用ThreadStart 类的实例实现关联,下面的示例说明创建和启动线程。[Visual Basic, C#, C++] 这段代码产生以下输出:[C#]
C# 跨线程操作控件的线程安全性方法
一、             引言         在C#中,经常用到这样一个场景,Windows Form程序启动一个工作者线程执行一部分工作,这样做是为了避免速度慢的工作如果直接调用会使得主Form停止响应一段时间。既然启动了线程,就避免不了线程之间数据传递的事情,相信你有很多种办法能解决,总之注意同步和互斥操作就好。我想说的是,工作线程处理中可能想操作某个主线程的Windows Form的
C# 在线程中访问控件
C#  在线程中访问控件,会抛出异常 错误原因:线程间操作无效,从不是创建控件的线程访问此控件。 解决方法: 利用方法:Control.Invoke (Delegate)  详情:https://msdn.microsoft.com/en-us/library/zyzhdc6b(v=vs.110).aspx 思路: 1、定义一个委托类型 2、声明一个此委托类型的 变量
C#线程间操作无效(跨线程访问控件)
很多朋友在刚接触Winfrom的时候会遇到这个问题:线程间操作无效,从不是创建控件textbox1的线程访问它。 这里有提供两种解决方法。 第一种  System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;  第二种 使用委托 但是!!! 使用第
C#子线程操作主线程中的控件
参考:http://www.cnblogs.com/chaosimple/archive/2012/05/11/2495811.html 有两种方法可以选择: 1、在程序初始化的时候对要操作的控件设置下面的属性: System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls  =  false; 这样,系统就不会再抛出上面所说的这
C# 委托 回调 操作UI主线程 学习笔记
本篇相当于是对前面两篇博的一个简单总结,相当于为c#开发桌面程序有了一个多线程的应用方案。涉及了委托传参,回调委托,跨线程等。下面先直接上代码: 这段代码实现了,点Start按钮,开始更新进度条,当进度条走到100的时候,停止,在进度条更新中,任意时刻点击Stop,停止,大致界面是这样的: public partial class Form1 : Form { p
C#线程之间操作无效|不允许访问控件(c# 线程间操作无效: 从不是创建控件“”的线程访问它)
解决方法 1.创建事件委托 c#不允许对跨线程的控件的访问,如需操作跨线程的操作需要通过委托(delegate),即是函数指针来操作跨线程。说明dgList控件不是该线程的控件,需要使用委托操作。比如: delegate void SetListBoxCallback(string str); //定义委托(SetListBoxCallback名称可以变化,自己定义) public voi
WinForm 多线程操作UI
单线程的winfom程序中,设置一个控件的值是很easy的事情,直接 this.TextBox1.value = "Hello World!";就搞定了,但是如果在一个新线程中这么做,比如: private void btnSet_Click(object sender, EventArgs e) {         Thread t = new Thread(new Paramet
C# 线程间操作无效
转载出处 许多新学习C#的新手进行界面操作的时候,在启用新线程时操作界面元素经常会遇到的问题,我曾经也是,特此来分享下经验: 以下面小列子为例,给出这个问题的解决办法。下面的列子是以一个计数器为列讲解的。 public Form1() { InitializeComponent(); } private void btnStart_Click(object sende
【操作系统】线程与进程的操作(C#)
08年9月入学,12年7月毕业,结束了我在软件学院愉快丰富的大学生活。此系列是对四年专业课程学习的回顾,索引参见:http://blog.csdn.net/xiaowei_cqu/article/details/7747205 线程与进程 通过查阅MSDN中C#关于Process类和Thread类的内容设计如下要求的一段程序: 在程序中打开两个后台线程(background=fals
C#操作文件之 按行写入文件实例
下面是利用C#按行写入文件的操作:              FileInfo finfo = new FileInfo("D:/result.dat");            if (!finfo.Exists)            {                finfo.Create();            }            else            {
C#多线程中访问winform控件
程序会报错 "跨线程操作无效,从不是创建"label1"的线程访问它"的解决方法。 方法一: System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;  不推荐使用这种方式,禁止编译器对跨线程访问做检查 方法二:使用delegate和invoke private delegate vo
c#读pdf文件写入txt
一个简单的c#项目,引用操作pdf文档的类,实现将pdf文件写入到txt文件当中
请教c#多线程操作更新控件的简便方法
Action是用来做什么的呢? Control.BeginInvoke(new Action())不就完了? 这个最简单了!一句话解决。 我前面的扩展方法以及调用方法全部可换成一句代码解决! C# code ? 1 2 3 4 5 comboBox1.BeginInvoke(new Actio
c#利用委托跨线程调用UI控件完整使用方法
在子线程中通过委托访问form并修改UI控件
使用线程同时处理一个DataTable
public DataTable GetDs(int j) { DataTable dt = new DataTable(); dt.Columns.Add("ID", typeof(String)); dt.Columns.Add("Value", typeof(String));
C#多线程操作的学习
开篇:所有的线程虽然在微观上是串行执行的,但是在宏观上你完全可以认为它们在并行执行。 当按照先后顺序开启两个线程的时候,第一先开启的线程,线程内部任务还未执行完的时候,其实第二个语句已经开始,第二 个语句就是开启第二,那么第二个线程内部任务会和线程1任务并发执行。优先级会改变他们的执行频率。 一、关于开启线程方法两种: 第一种: Thread t = new Thread(Wor
在该控件上执行的操作正从错误的线程调用。
这是跨线程调用控件所致,以往treeView中动态添加节点为例。 可把 this.treeView.Nodes.Add(subNode); 改为: this.treeView.Invoke(new Action(() => { parentNode.Nodes.Add(subNode); }));
C# 子线程中访问主线程中的控件
C#,从子线程中访问空间的一种方式。
多线程编程(4):多线程与UI操作
为了让程序尽快响应用户操作,在开发Windows应用程序时经常会使用到线程。对于耗时的操作如果不使用线程将会是UI界面长时间处于停滞状态,这种情况是用户非常不愿意看到的,在这种情况下我们希望使用线程来解决这个问题。下面是一个使用多线程操作界面UI的代码:using System;using System.Collections.Generic;using System.Componen
C# 线程间不能调用剪切板的问题 续集
C# 线程间不能调用剪切板的问题 续集,获取剪切板的数据,将剪切板的数据返回
C# 多线程如何访问同一个数据
C# 使用Monitor类、lock和Mutex类进行多线程同步 在多线程中,为了使数据保持一致性必须要对数据或是访问数据的函数加锁,在数据库中这是很常见的,但是在程序中大部分都是单线程的程序,所以没有加锁的必要,但是在多线程中,为了保持数据的同步,一定要加锁。 在Framework中已经为我们提供了三个加锁的机制,分别是Monitor类、lock关键字和Mutex类。 Monitor和lock用法
[C#]多线程读取数组的小例子
这是一个多线程同时读取一个数组的示例,是回答了一个网友提问的文章.        private static string[] Arr = new string[1000];        private static int arrindex = 0;        const int N = 5;        private static ManualResetEv
C# Winform跨线程设置button的visibility
C# Winform跨线程设置button的visibility
C# .NET 在一个线程中访问另一个线程的控件
.NET 不允许在一个线程中直接访问另一个线程创建的控件,会引发异常:线程间操作无效,从不是创建控件XXX的线程访问它。Windows 窗体中的控件被绑定到特定的线程,不具备线程安全性。如果从另一个线程调用控件的方法,那么必须使用控件的一个 Invoke 方法来将调用封送到适当的线程。本文以一个线程去改变另一个线程的 Label(lb_Name) 的 Text 属性为例,实
C# 线程操作实例
C# 线程操作实例, C#(vs2008)
C#使用异步实现 IO 操作
使用异步特性实现 IO 操作的意义异步特性有利于增强应用程序的响应能力。因为一个操作的 UI 线程可以执行其他工作。如果 UI 线程需要执行较长时间的代码(如,> 50ms),UI 会阻塞到 I/O 完成,这时用户界面线程才可以重新处理键盘、鼠标输入和其他操作。 文件访问操作的延迟在本地也许非常低,但是,我们可以考虑一下文件在非本地时进行的操作。例如,文件可能会存放位于远程的服务器。 使用异步额
c#一个简单的线程实例 委托控制控件
一个简单的c#线程例子,点击开启线程。运行环境VS2010。
c# winform开发 从线程中访问控件
winform开发就会涉及到线程中控制UI控件的问题,通常情况下是不能在线程中操作UI控件的,如果在调试模式下就会出现“线程间操作无效: 从不是创建控件“%%”的线程访问它。”的错误。那么正确的方法是使用委托,委托主线程操作UI,其实对C#的委托我也还没入门。。。这一点Mac下面就简单多了,直接有调用主线程更新UI的方法。 好了,废话不多说,先说不传参数的方法,在线程中写上 this.Invo
用线程池实现多线程向同一个文件写入数据
最近接到一项工作,是要计算某个省的所有县,两两之间的距离。这个排列组合大约有2万条记录。我采取的是百度地图API来查询两个县之间的距离。由于访问百度地图API请求数据,需要一定的时间,所以考虑使用java的线程池创建多线程来完成这一项工作,一边去baidu地图查询结果,一边向CSV文件写入数据。 代码如下: //用队列存放每一个线程执行的结果值。 Queue result  = new L
C# 线程 委托 回调-操作主线程定义的控件
<br />遇到的错误:<br />   Cross-thread operation not valid: Control '' accessed from a thread other than the thread it was created on。<br />   意思是子线程无法操作主线程中定义的控件。<br />问题:<br />   子线程结束后如何自动通知主线程?<br />解决:<br />   利用委托和回调。<br />举例:<br />  public class Form1 :
线程间操作无效: 从不是创建控件“label1”的线程访问它。C#定时器
线程间操作无效: 从不是创建控件“label1”的线程访问它。 我在使用线程操作winfrom控件对象的时候报错,后来才发现问题所在:多线程中直接调用界面控件的方法是错误的做法,Invoke 和 BeginInvoke 就是为了解决这个问题而出现的,使你在多线程中安全的更新界面显示 使用委托的时候是使用 Invoke 方法访问主线程程序,实现修改赋值给控件。   //解决无法访问已释
多线程调用DataGridView
  为了测试数据类型检查功能,创建了ASP.NET应用程序DataTypeApplication。该应用程序在 App_Code/DataTypeCommonOperation.cs文件中声明了名字空间RegexExpression,其程序代码如下:namespace RegexExpression{///……}  下面的代码为ASP.NET应用程序DataTypeApplic
C#线程操作ToolStripProgressBar
C# ToolStripProgressBar Thread 线程操作
c#在多线程中访问Form中控件的多种解决方案
c#在多线程中访问Form中控件的多种解决方案,是我看到的最好最全的方案,贡献给大家看看,希望有所启发
progressBar+线程举例(winform,c#)
int count = 1000;  //测试总数 /// /// 方法1 /// private void setthread() { this.progressBar1.Minimum = 0; this.progressBar1.Value = 0; this.progressBar1.Maximum = count; for (int i = 0; i { this.progress
C# 使用委托开始线程
使用委托的形式,调用线程,,,using System; using System.Threading;namespace 委托开启线程 { class Program { static void Main(string[] args) //在mian中线程是执行一个线程里面的语句的执行,是从上到下的 { //通过委托 开启一个
C#线程处理
C#线程处理 线程处理使 C# 程序能够执行并发处理,以便您可以同时执行多个操作。例如,您可以使用线程处理来监视用户输入,执行后台任务,以及处理并发输入流。System.Threading 命名空间提供支持多线程编程的类和接口,使您可以轻松地执行创建和启动新线程,同步多个线程,挂起线程以及中止线程等任务。 若要在 C# 代码中合并线程处理,只需创建一个将在主线程外执行的函数,并让一个新的
Python多线程同步---文件读写控制
1、实现文件读写的文件ltz_schedule_times.py#! /usr/bin/env python #coding=utf-8 import osdef ReadTimes(): res = [] if os.path.exists('schedule_times.txt'): fp = open('schedule_times.txt', 'r')
相关热词 c# 输入ip c# 乱码 报表 c#选择结构应用基本算法 c# 收到udp包后回包 c#oracle 头文件 c# 序列化对象 自定义 c# tcp 心跳 c# ice连接服务端 c# md5 解密 c# 文字导航控件
立即提问