小编mar*_*ius的帖子

Streamreader锁定文件

我有一个ac#app(Windows服务),它会触发一个读取目录中文件的计时器事件,并使用文件中的数据发送短信.当事件触发时,它会在处理新文件之前尝试将"已处理"目录中的已处理文件移动到"已完成"目录.我不断得到"另一个进程正在使用的文件"异常,虽然我很确定我处理了使用这些文件的所有内容.如果我停止服务并再次启动它,则会释放文件.有任何想法吗?

//Code that fires the timer    
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Linq;
using System.ServiceProcess;
using System.Text;
using System.Timers;

namespace SmsWindowsService
{
    public partial class SmsWindowsService : ServiceBase
    {
        private static System.Timers.Timer aTimer;

        public SmsWindowsService()
        {
            InitializeComponent();

            if (!System.Diagnostics.EventLog.SourceExists("MatterCentreSMSSource"))
            {
                System.Diagnostics.EventLog.CreateEventSource(
                    "MatterCentreSMSSource", "MatterCentreSMSLog");
            }
            elMatterCentreSMS.Source = "MatterCentreSMSSource";
            elMatterCentreSMS.Log = "MatterCentreSMSLog";

        }

        protected override void OnStart(string[] args)
        {
            string logText = string.Empty;

            logText = "MatterCentreSMS Service started successfully on " + DateTime.Now;

            WriteEventLog(logText);

            //Create a timer …
Run Code Online (Sandbox Code Playgroud)

c# locking file streamreader

-5
推荐指数
1
解决办法
1257
查看次数

标签 统计

c# ×1

file ×1

locking ×1

streamreader ×1