我需要检查我的Qt GUI应用程序是否已在当前的X会话中运行.也就是说,我想禁止运行它的几个实例.但是应该允许不同用户或另一个(即远程)X服务器上的同一用户运行多个实例.
如何才能做到这一点?
谢谢.
好的,所以提前一段时间我发布了如何阅读其他程序的其他配置文件(这里是链接上一篇文章.我设法做到了.但是现在还有另外一个问题.场景是这样的,我有两个程序.程序A从配置文件读取其配置,程序B仅用于修改A读取的配置文件的内容.配置文件的名称是email.config.它位于程序A和B所在的目录中.
问题是我使用打开文件对话框获取附件文件的路径.如果路径指向同一目录中的文件,则程序运行完美!但如果它指向目录外的文件,则会抛出System.NullReferenceException类型的异常.
这是代码
private void saveBtn_Click(object sender, EventArgs e)
{
try
{
// save everything and close
string attachment = attachTxtBox.Text;
var configMap = new ExeConfigurationFileMap { ExeConfigFilename = configFileName };
// it throws exception here when
// the path points to a file outside the exes directory
Configuration externalConfig = ConfigurationManager.OpenMappedExeConfiguration(configMap, ConfigurationUserLevel.None);
externalConfig.AppSettings.Settings["ServerAddress"].Value = serverAddr;
externalConfig.AppSettings.Settings["Port"].Value = port;
externalConfig.AppSettings.Settings["SSL"].Value = ssl.ToString();
externalConfig.AppSettings.Settings["Sender"].Value = …Run Code Online (Sandbox Code Playgroud) 例如:class
Book {
static mapping = {
batchSize 10
}
}
Run Code Online (Sandbox Code Playgroud)
可能:
@Configration(batchSize=10)
class Book {
...
}
Run Code Online (Sandbox Code Playgroud) 我有一个充满了从数据库加载的用户登录的数组.仅保留包含非ascii字符的登录的最简单有效的方法是什么?
logins = Users.find(:all).map{|user|user.login}
logins_with_non_ascii_characters = logins.select{ |login| ...??? }
Run Code Online (Sandbox Code Playgroud)
谢谢
编辑:如果你有一个SQL解决方案(我使用MySQL,但通用解决方案会更好)直接在第一行过滤登录,使用:conditions子句,我也可以.事实上,它会更有效:
logins = Users.find(:all, :conditions => "...???").map{|user|user.login}
Run Code Online (Sandbox Code Playgroud) 我一直在研究MapReduce,它似乎是实现容错分布式计算的一种非常好的方法.我阅读了很多关于该主题的论文和文章,在一系列虚拟机上安装了Hadoop,并做了一些非常有趣的测试.我真的认为我理解Map和Reduce步骤.
但这是我的问题:我无法弄清楚它如何帮助http服务器日志分析.
我的理解是大公司(例如Facebook)使用MapReduce来计算他们的http日志,以便加快从中提取受众统计数据的过程.我工作的公司,虽然比Facebook小,但每天都有大量的网络日志需要计算(100Go每月增长5%到10%).现在我们在一台服务器上处理这些日志,它运行得很好.但是,作为一种即将有用的优化,可以立即想到分发计算工作.
以下是我现在无法回答的问题,非常感谢任何帮助:
谢谢.
萨科
我正在尝试通过WCF序列化NameValueCollection.我不断收到异常,告诉我要一个接一个地添加一个类型.添加它们后,我终于得到了
类型'System.Object []'无法添加到已知类型列表中,因为另一个类型'System.Collections.ArrayList'具有相同的数据协定名称' http://schemas.microsoft.com/2003/10/Serialization/Arrays :ArrayOfanyType '已存在.
合同现在看起来像这样:
[KnownType(typeof(NameValueCollection))]
[KnownType(typeof(CaseInsensitiveHashCodeProvider))]
[KnownType(typeof(CaseInsensitiveComparer))]
[KnownType(typeof(string[]))]
[KnownType(typeof(Object[]))]
[KnownType(typeof(ArrayList))]
[DataContract]
public class MyClassDataBase
{
[DataMember]
public NameValueCollection DataCollection = new NameValueCollection();
}
Run Code Online (Sandbox Code Playgroud)
我真的不知道如何能够序列化我的NameValueColletion.
另一个奇怪的事情是编译器警告不推荐使用CaseInsensitiveHashCodeProvider.
这是故事.我的页面上的div里面有一个无序列表.
代码:
<div id="move-me">
<ul>
<li><a href="#">Link</a></li>
<li><a href="#">Link</a></li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
上面的代码位于页面的左侧,现在我想要做的是,销毁div和ul元素,只留下链接.然后最后将这些链接附加到侧边栏列表.
有任何想法吗?
这可能看起来像是一个问题,但我正在看这个,因为我听到有人声称你必须在FileStream上调用Close(),即使它在一个使用块中(并且他们有代码,其中调用Close())就在街区尽头).
我知道Close()意味着调用Dispose(),但我认为我看起来更深,因为这是.Net 1.1代码,我的大部分经验都是2.0.
令我印象深刻的是,FileStream的MSDN文档为.Net 2.0启用了Dispose()和Dispose(bool),但只为.Net 1.1启用了Dispose(bool).
我认为这可能是一个疏忽,所以我使用Reflector查看一个程序集 - 我也看到Dispose(bool),但没有Dispose().
它是否正确?如果是这样,这里的故事是什么?FileStream在一个使用块中工作 - 我认为它必须实现IDisposable,据我所知,它只声明Dispose().
是否有一些编译器魔法正在进行,或者我在某处错过了隐藏的Dispose()实现(可能是调用Dispose(true)或Dispose(false)?)
最后(没有双关语),你能否确认在使用块中使用FileStream的范围将在.Net 1.1中的范围出口处关闭流?
[编辑]
只是为了澄清,这是C#代码.我知道VB.Net在.Net 2.0之前没有得到using语句,但我的理解是C#在1.1中有它(我的1.1代码在这里有它并编译)
如何在.NET中将数字格式化为百分比而不显示百分号?
如果我有数字0.13并使用格式字符串{0:P0}输出13 %.
但是我想13改为,而不必将数字乘以100并使用格式字符串{0:N0}.
(背景:在ASP.NET中,我有一个带有BoundField的GridView,我想在其中显示一个数字,但不显示百分号(%).我该怎么做?)
谢谢你的回答.在编辑时,如上所述,在6个中有4个表示我想要避免的内容.我一直在寻找一种只使用格式字符串的方法,并避免乘以100并使用{0:N0},但答案表明这是不可能的......
使用理查德接受的解决方案解决:
public class MyCulture : CultureInfo
{
public MyCulture()
: base(Thread.CurrentThread.CurrentCulture.Name)
{
this.NumberFormat.PercentSymbol = "";
}
}
Thread.CurrentThread.CurrentCulture = new MyCulture();
Run Code Online (Sandbox Code Playgroud)