1.读d:\test\dev.txt,想5分钟之内不刷新,避免重复读,5分钟之后刷新一下,
重新读文本的内容,现在想出怎么将数据保存在内存,避免重复读,但不知道
怎么每隔5分钟刷新一下,向大佬们求助。
2.顺便看看下面写的这部分内容是否能满足将数据保存。
在内存啊,小弟多谢了。private static string Content = null;
public static string ReadTxt
{
get
{
if (Content == null)
{
string[] srArray = File.ReadAllLines(@"d:\test\dev.txt", Encoding.Default);
for (int i = 1; i < srArray.Length; i++)
{
Content += (srArray[i] + ",t" + '\n');
}
}
char[] trimChars = new char[] { '\r', '\n' };
Content = Content.Trim(trimChars).ToString();
return Content;
}
}webservice刷新数据内存
重新读文本的内容,现在想出怎么将数据保存在内存,避免重复读,但不知道
怎么每隔5分钟刷新一下,向大佬们求助。
2.顺便看看下面写的这部分内容是否能满足将数据保存。
在内存啊,小弟多谢了。private static string Content = null;
public static string ReadTxt
{
get
{
if (Content == null)
{
string[] srArray = File.ReadAllLines(@"d:\test\dev.txt", Encoding.Default);
for (int i = 1; i < srArray.Length; i++)
{
Content += (srArray[i] + ",t" + '\n');
}
}
char[] trimChars = new char[] { '\r', '\n' };
Content = Content.Trim(trimChars).ToString();
return Content;
}
}webservice刷新数据内存
ThreadStart thStartConvert = new ThreadStart(MyMethod2);
thStartConvert.BeginInvoke(new AsyncCallback(AsyncCallbackMethod2),null);
public void AsyncCallbackMethod2(System.IAsyncResult myIAsyncResult)
{
} public void MyMethod2()
{
for(int i = 0;i < 3; i++) //延长时间(模拟实际任务)
{
Thread.Sleep(300000);//五分钟=300秒=300000ms
}
}
http://blog.sina.com.cn/s/blog_48a45b950100erei.html
试过,但是有问题,请问就我贴出的代码,应该在哪里做出修改呢。
试过,但是有问题,请问就我贴出的代码,应该在哪里做出修改呢。
不用改,应该可以
试过,但是有问题,请问就我贴出的代码,应该在哪里做出修改呢。
不用改,应该可以
你好,我还是不太理解你的意思啊,我觉得按照你的方法的话,我的函数需要做调整的,
你能完整的写一下么,我上面贴的代码是读取文本的函数,首先判断Content == null,
为的是防止重复读,如果不为空就直接return。
/// <summary>
/// SysConfig.cs 中定义的函数
/// </summary>
private static string Content = null;
public static string ReadTxt
{
get
{
if (Content == null)
{
string[] srArray = File.ReadAllLines(@"d:\test\dev.txt", Encoding.Default);
for (int i = 1; i < srArray.Length; i++)
{
Content += (srArray[i] + ",t" + '\n');
}
}
char[] trimChars = new char[] { '\r', '\n' };
Content = Content.Trim(trimChars).ToString();
return Content;
}
}
/// <summary>
/// WebService.asmx.cs
/// 调用ReadTxt
/// </summary>
public string ReadTxt()
{
string data2 = SysConfig.ReadTxt;
string[] buf1 = data1.Split('\n');
//........
//下面就是对数据做相应的处理,
//d:\test\dev.txt这个文件是5分钟刷新一次
//我想读一次后保存起来,避免重复读,每5分钟读一次即可,就是这样
}
string data ="";
while(1==1)
{
data=SysConfig.ReadTxt;
Thread.Sleep(300000);
}
/// WebService.asmx.cs
/// 调用ReadTxt
/// </summary>
public string ReadTxt()
{
while(1==1)
{
string data2 = SysConfig.ReadTxt;
Thread.Sleep(300000);
}
string[] buf1 = data1.Split('\n');
}
- <Items>
<ItemCode>24974</ItemCode>
<ItemPosition>TEST1</ItemPosition>
<ItemType>22</ItemType>
<ItemName>AAA</ItemName>
<SysId>test1</SysId>
<SysName>sysid13</SysName>
</Items>
- <Items>
<ItemCode>24975</ItemCode>
<ItemPosition>TEST2</ItemPosition>
<ItemType>22</ItemType>
<ItemName>BBB</ItemName>
<SysId>test1</SysId>
<SysName>sysid13</SysName>
</Items>
<dataSet>
while(true)
{
labe1.text=SysConfig.ReadTxt;
Thread.Sleep(300000); }
找到这个帖子,就是cao版主的那个意思,他说做时间判断,怎么做啊
private static DateTime _date = new DateTime(1900,1,1);
private static string FileContent
{
get {
if (_filecontent == null || _date.AddMinutes(5) < DateTime.Now)
{
_filecontent = string.Join("\r\n", System.IO.File.ReadAllLines(@"C:\1.txt"));
_date = DateTime.Now;
}
return _filecontent;
}
}