我有一个库来处理读取和写入缓存文件.Windows服务和同一台计算机上的控制台应用程序的多个实例使用此库.控制台应用程序在用户登录时运行.
我偶尔会遇到IO错误,说缓存文件正由另一个进程使用.我假设在不同的应用程序实例和尝试同时读写的服务之间发生冲突.
有没有办法在文件使用时锁定文件并强制所有其他请求"排队等待"访问文件?
private void SaveCacheToDisk(WindowsUser user) {
string serializedCache = SerializeCache(_cache);
//encryt
serializedCache = AES.Encrypt(serializedCache);
string path = user == null ? ApplicationHelper.CacheDiskPath() :
_registry.GetCachePath(user);
string appdata = user == null ? ApplicationHelper.ClientApplicationDataFolder() :
_registry.GetApplicationDataPath(user);
if (Directory.Exists(appdata) == false) {
Directory.CreateDirectory(appdata);
}
if (File.Exists(path) == false) {
using (FileStream stream = File.Create(path)) { }
}
using (FileStream stream = File.Open(path, FileMode.Truncate)) {
using (StreamWriter writer = new StreamWriter(stream)) {
writer.Write(serializedCache);
}
}
}
private string ReadCacheFromDisk(WindowsUser user) {
//cache …Run Code Online (Sandbox Code Playgroud) 一般来说,我仍然习惯于附加行为,并且看不出如何为一个人编写单元测试.
我在Sacha Barber的Cinch框架下面粘贴了一些代码,允许通过附加行为关闭窗口.有人能告诉我一个示例单元测试吗?
谢谢!
Berryl
#region Close
/// <summary>Dependency property which holds the ICommand for the Close event</summary>
public static readonly DependencyProperty CloseProperty =
DependencyProperty.RegisterAttached("Close",
typeof(ICommand), typeof(Lifetime),
new UIPropertyMetadata(null, OnCloseEventInfoChanged));
/// <summary>Attached Property getter to retrieve the CloseProperty ICommand</summary>
public static ICommand GetClose(DependencyObject source)
{
return (ICommand)source.GetValue(CloseProperty);
}
/// <summary>Attached Property setter to change the CloseProperty ICommand</summary>
public static void SetClose(DependencyObject source, ICommand command)
{
source.SetValue(CloseProperty, command);
}
/// <summary>This is the property changed handler for the Close property.</summary>
private …Run Code Online (Sandbox Code Playgroud) 嗨这应该是一个非常容易的问题,但我被卡住了.是否可以淡出文本框和textarea中的文本并将实际元素保留在原位.我已经尝试淡出使用.html().val()等,但文本所在的元素也总是褪色.
嗨,我正在我的webapp中实现实时搜索(=键入时搜索)功能.目前我正在使用keyup事件通过ajax post发送搜索请求,例如
$('#SearchField').keyup(function(e) {
$.post(
...
);
});
Run Code Online (Sandbox Code Playgroud)
但是这会导致某种滞后问题,在某些情况下,当我搜索时,例如在"问题"之后,"专业"的响应在"问题"的响应之后显示出来,并以一种方式覆盖正确的搜索结果结果很好.
什么是打击这种行为的好方法?
TIA
我想检查NSString的特殊字符,即除了az,AZ和0-9之外的任何字符.
我不需要检查有多少特殊字符或它们的位置,我只需要知道特定字符串是否包含任何字符.如果是,那么我希望能够显示"错误!"或类似的东西.
例如, jHfd9982可以,但asdJh992 @不是.
此外,不应允许带有重音符号,变音符号等的字母.
我该怎么做?
谢谢!
迈克尔
是什么类似于Java的.Net
LinkedListNode<(Of <(T>)>)..::.Next和LinkedListNode<(Of <(T>)>)..::.Previous属性java.util.LinkedList.
我的SQL Server 2008数据库中有一个包含时间列的表.
我想要映射到的对象的属性是TimeSpan.
我如何告诉FluentNHibernate使用TimeAsTimeSpan NHibernate类型,以便我没有演员问题?
nhibernate nhibernate-mapping fluent-nhibernate sql-server-2008
我是Microsoft SQL Server的新手.我有一些MySQL的经验,如果我理解正确的话,你就有了一个拥有特权的用户; 这些权限决定了您在MySQL服务器上可以访问的数据库.
但是现在我处于我必须在SQL Server 2005 Express上恢复数据库的情况,并且该数据库具有自己的用户和用户密码.因此,如果我想让这些用户可以从外部访问(以便他们可以连接到我的服务器),我该怎么做呢?
为了说明更清楚; 假设数据库服务器上有两个登录帐户"Mike"和"John",而数据库"Animals"上有两个用户; "克里斯"和"杰夫".
我需要Jeff能够登录才能访问数据库.有没有一种很好的方法可以在不创建新用户/登录的情况下实现这一目标?如果没有,最好/最常见的解决方案是什么?
我真的很感激任何有用的输入!
有没有办法让JQGrid返回一个列数据数组以便使用multiSelect而不仅仅是一个rowIds数组?
目前我只能返回所选的最后一列数据.
jQuery("#buttonSelected").click(function() {
var ids = jQuery("#relatedSearchGrid").getGridParam('selarrrow');
var count = ids.length;
for (var i = 0; i < count; i++) {
var columnData = $("#relatedSearchGrid").find("tbody")[0].rows[$("#relatedSearchGrid").getGridParam('selrow') - 1].cells[1].innerHTML;
alert("In the loop and " + columnData );
}
if (count == 0) return;
var posturl = '<%= ResolveUrl("~") %>Rel******/AddSelected****/' + ids;
if (confirm("Add these " + count + " Docs?")) {
$.post(posturl,
{ ids: columnData },
function() { jQuery("#relatedSearchGrid").trigger("reloadGrid") },
"json");
}
})
Run Code Online (Sandbox Code Playgroud) jquery ×3
c# ×2
.net ×1
cocoa ×1
collections ×1
fadeout ×1
file-io ×1
java ×1
javascript ×1
jqgrid ×1
linked-list ×1
nhibernate ×1
nsstring ×1
search ×1
sql ×1
sql-server ×1
unit-testing ×1
wcf ×1
wpf ×1