我有一个多线程应用程序,使用静态方法写入设置xml文件.我想避免文件同时更新两次(导致访问/写入异常).
我怎么做?
这不起作用:
namespace Program
{
public class Settings
{
private static void SetSettingsValue (string settings, string value)
{
// make this thread safe to avoid writing to a locked settings xml file
lock (typeof(Settings))
{
//write data to xml file
}
}
}
}
Run Code Online (Sandbox Code Playgroud) 简短版本:类 的默认inspect方法显示对象的地址.*如何在inspect我自己的自定义方法中执行此操作?
*(要清楚,我想要你通常会得到的8位十六进制数inspect.我不关心实际的内存地址.我只是把它称为内存地址,因为它看起来像一个.我知道Ruby是存储安全.)
长版: 我有两个课,Thing和ThingList. ThingList是一个Array专门设计用于保存物品的子类.由于事物的本质以及它们在我的程序中使用的方式,事物有一个实例变量@container,指向ThingList那个持有的东西Thing.
两件事可能具有完全相同的数据.因此,当我调试应用程序时,我可以可靠地区分两件事的唯一方法是使用inspect,它显示他们的地址.当我inspect一个Thing,不过,我得在输出的页面,因为页面inspect会递归的检查@container,造成每一件事的清单进行检查,以及!
我只需要输出的第一部分.如何编写自定义inspect方法Thing才会显示此内容?
#<Thing:0xb7727704>
Run Code Online (Sandbox Code Playgroud)
编辑: 我刚刚意识到默认就是to_s这样.我之前没有注意到这一点,因为我有一个自定义to_s提供有关该对象的人类可读细节.
假设我不能使用to_s,我必须写一个自定义inspect.
我正在尝试为PHP serialize()格式编写一个ANTLR语法,除了字符串之外,一切似乎都能正常工作.问题是序列化字符串的格式是:
s:6:"length";
Run Code Online (Sandbox Code Playgroud)
就正则表达而言,s:(\d+):".{\1}";如果在"匹配数"计数中仅允许反向引用(但它们不是),则会像描述此格式一样的规则.
但我无法找到一种方法来表达词法分析器或解析器语法:整个想法是使读取的字符数取决于描述要读取的字符数的反向引用,如Fortran Hollerith常量(即6HLength),而不是在字符串分隔符上.
这个来自Fortran的ANTLR语法的例子似乎指明了方向,但我不知道如何.请注意,我的目标语言是Python,而大多数文档和示例都是针对Java的:
// numeral literal
ICON {int counter=0;} :
/* other alternatives */
// hollerith
'h' ({counter>0}? NOTNL {counter--;})* {counter==0}?
{
$setType(HOLLERITH);
String str = $getText;
str = str.replaceFirst("([0-9])+h", "");
$setText(str);
}
/* more alternatives */
;
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用公共密钥加入ruby中的多个哈希数组.例如:
country_info = [
{country_id: "US", country_desc: "United States"},
{country_id: "AU", country_desc: "Australia"}
]
country_stats = [
{country_id:"US", pageviews: 150},
{country_id:"AU", pageviews: 200}
]
i_want = [
{country_id: "US", country_desc: "United States", pageviews:150},
{country_id: "AU", country_desc: "Australia", pageviews:200}
]
Run Code Online (Sandbox Code Playgroud)
这类似于Javascript中protovis的pv.nest功能.请参阅:http://protovis-js.googlecode.com/svn/trunk/jsdoc/symbols/pv.Nest.html
我怎么能在Ruby中做到这一点?
我打算存储在数据库中查看文章/页面的次数.这样我就可以在Wordpress中找到"最受欢迎的帖子/文章"列表.
对于类似的问题,这是一个很好的线程:"查看计数"如何最好地实现?
我的问题是:一个人可能会在同一天/周内多次查看文章.
计算同一个人阅读文章的次数的行业最佳做法是什么?
有没有办法解决同一IP地址背后的多个用户?
更新
我不是用于计算文章/帖子视图的编码技术(会话,cookie IP地址,CGI等).
我只是想知道什么逻辑最适合用于计算同一个人随时间阅读的文章?
他们喜欢的事情压,突出重点,禁用状态,但可以创建自定义的状态,以便它可以反映一些我自己的自定义标准是什么?
例如,假设您有一个名单.有些人属于某种应该以不同方式直观表达的类别.这些人的行将具有不同的状态和背景可绘制.
我正在寻找一个可以嵌入到我的程序中的JIT编译器或小型编译器库.我缩进使用它来编译动态生成的代码,执行复数的算术.生成的代码在结构上非常简单:没有循环,没有条件语句,但(当由GCC编译几MB),他们可能会很长.生成的机器代码的性能很重要,而我并不真正关心编译本身的速度.哪个JIT编译器最适合我的目的?谢谢!
详细要求
我的内容在移动和网站之间将完全相同.我唯一想要改变的是基础模板.一个用于移动HTML的基本模板,另一个用于网站HTML.
一种解决方案是包装render_to_response并确定要呈现的HTML,但我仍然有两个文件.
有没有办法可以动态地告诉模板要扩展哪个页面?
我通过扩展SimpleCursorAdapter创建了一个自定义ListView.结果是IMAGE + CheckedTextView(文本+复选框).
当我长按一个项目时,一切正常 - 我得到了正确的ID和被点击的项目的详细信息.
当我尝试将项目标记为已选中但它检查错误的复选框时,会出现此问题.
例如:我的列表中有9个项目,排序为1-9.如果我点击listItem 1,则会检查第9行的复选框.如果我点击第4项,则会检查第6行上的复选框,如果我点击中间一行,则会进行检查.
显然,我在这里遗漏了一些东西:)请记住,当我长时间点击该行(contextMenu打开)时,一切都很好.
这是听众:
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
CheckedTextView markedItem = (CheckedTextView) view.findViewById(R.id.btitle);
if (!markedItem.isChecked()) {
markedItem.setChecked(true);
} else {
markedItem.setChecked(false);
}
}
});
Run Code Online (Sandbox Code Playgroud)
感谢任何帮助!
如果您需要我发布更多代码,请告诉我.
谢谢!
顺便说一句,如果我点击多个...... PARTY继续......没有明显的顺序......
编辑:适配器代码
public class ImageCursorAdapter extends SimpleCursorAdapter {
private Cursor c;
private Context context;
private String url;
private TextView bUrl;
public ImageCursorAdapter(Context context, int layout, Cursor c,
String[] from, int[] to) {
super(context, …Run Code Online (Sandbox Code Playgroud) 如何让"mymessage.gif"显示"bread_wine.jpg".
mymessage.gif具有透明背景.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>overlap images</title>
<style type="text/css">
<!--
#navbar {
font-size: 18px;
font-weight: bold;
text-align: center;
}
#thebigimage {
background-image: url(bread_wine.jpg);
height: 548px;
width: 731px;
margin-right: auto;
margin-left: auto;
}
#overlapthis {
background-image: url(mymessage.gif);
}
-->
</style>
</head>
<body>
<div id="navbar">this is the nav bar</div>
<div id="thebigimage">
<div id="overlapthis"></div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)