我想提供消息读取器/写入器的多个实现.什么是最好的方法?
这是我目前正在思考的一些伪代码:
只需拥有一组所有实现必须提供的功能,并将其留给调用者以保持正确的流
(ns x-format)
(read-message [stream] ...)
(write-message [stream message] ...)
Run Code Online (Sandbox Code Playgroud)返回一个带有两个闭合函数的映射,这些函数保持在流
(ns x-format)
(defn make-formatter [socket]
{:read (fn [] (.read (.getInputStream socket))))
:write (fn [message] (.write (.getOutputStream socket) message)))})
Run Code Online (Sandbox Code Playgroud)别的什么?
我有简单的一个生产者/两个消费者代码如下,但输出显示只有C2消耗.我的代码中有任何错误吗?
class Program
{
static void Main(string[] args)
{
Object lockObj = new object();
Queue<string> queue = new Queue<string>();
Producer p = new Producer(queue, lockObj);
Consumer c1 = new Consumer(queue, lockObj, "c1");
Consumer c2 = new Consumer(queue, lockObj, "c2");
Thread t1 = new Thread(c1.consume);
Thread t2 = new Thread(c2.consume);
t1.Start();
t2.Start();
Thread t = new Thread(p.produce);
t.Start();
Console.ReadLine();
}
}
public class Producer
{
Queue<string> queue;
Object lockObject;
static int seq = 0;
public Producer(Queue<string> queue, Object lockObject) …Run Code Online (Sandbox Code Playgroud) 如何在bash脚本中获取当前工作目录名称,甚至更好,只需一个终端命令.
pwd给出了当前工作目录的完整路径,例如/opt/local/bin但我只想要bin
我一直在努力将输入注入到WPF应用程序中.使这个项目变得困难的原因是我需要能够将输入注入到应用程序中,即使它在后台运行(即另一个应用程序具有输入焦点).因此,使用SendInput()函数是不可能的.
到目前为止,我已经有键盘输入工作,但是在注入鼠标输入时遇到了麻烦.
我使用Spy ++观察物理单击鼠标按钮时发送到WPF窗口的窗口消息.然后,我手动简单地制作这些相同的鼠标消息(例如WM_LBUTTONDOWN和WM_LBUTTONUP),并将它们显式发送到WPF窗口以模拟鼠标输入.
不幸的是,这不能按预期工作(即使我出于测试目的,已将WPF窗口设置为前景窗口).
我在我的测试WPF窗口中添加了一个按钮,单击该窗口时会显示一个消息框.当我手动将光标放在按钮上时,注入适当的鼠标消息不会导致单击按钮(即,WPF框架不会触发单击的事件).
如果我在实际对话框(客户区)上添加鼠标单击处理程序,那么如果我将光标放在对话框本身上并像以前一样注入相同的窗口消息,则会调用该处理程序:
this.MouseLeftButtonDown += WndMouseDown;
public void WndMouseDown(object sender, EventArgs e)
{
...
}
Run Code Online (Sandbox Code Playgroud)
奇怪的是,如果我将按钮的推模式更改为Press(即,它被认为是单击鼠标按下而不是默认鼠标向上),则当我像以前一样注入相同的消息时,按钮单击事件现在被触发.(值得一提的是,上面示例中的处理程序正确地触发了鼠标向下和向上,因此看起来WPF框架确实成功处理了这两个消息.)
似乎还有一些其他标准需要满足才能使WPF框架触发鼠标单击事件.有没有人知道如何在WPF内部处理鼠标输入,或者为什么它不是单击按钮来解释我的鼠标上下消息?
(值得一提的是,这种方法[发送窗口消息]在普通的Win32窗口上工作正常,例如Start-> Run对话框.这里的区别是WPF只有一个物理Win32窗口,其余的是WPF特定的,这意味着所有窗口消息转到顶级窗口而不是实际按钮.)
我一直在寻找这个答案的高低,并会欣赏任何想法或想法.
似乎使用ActiveRecord(需要ActiveSupport)与Logger类混淆,导致困难.这可以通过一些示例代码看到:
require 'rubygems'
#require 'activerecord'
require 'logger'
log = Logger.new(STDERR)
log.sev_threshold = Logger::INFO
log.datetime_format = "%Y-%m-%d %H:%M:%S"
log.debug "debug"
log.info "info"
log.warn "warn"
log.error "error"
log.fatal "fatal"
Run Code Online (Sandbox Code Playgroud)
运行此代码将产生这个可爱的输出:
I, [2009-09-02 10:49:39#27562] INFO -- : info W, [2009-09-02 10:49:39#27562] WARN -- : warn E, [2009-09-02 10:49:39#27562] ERROR -- : error F, [2009-09-02 10:49:39#27562] FATAL -- : fatal
但是,如果我取消注释require'activerecord'行,我会改为:
info warn error fatal
所以我在查看activesupport后进行了一些搜索:
我找到了以下"工作方案"
log = Logger.new(STDERR)
log.sev_threshold = Logger::INFO
log.datetime_format = "%Y-%m-%d %H:%M:%S"
class Formatter
Format = "%s, [%s#%d] …Run Code Online (Sandbox Code Playgroud) 我想了解当CSS所在的元素是CSS的元素的display:blockDOM子元素时会发生什么display:inline(因此块元素是内联元素的子元素).
CSS 2.1规范的匿名块框部分描述了这种情况:该示例包括以下规则......
body { display: inline }
p { display: block }
Run Code Online (Sandbox Code Playgroud)
......以及附带的文字说......
BODY元素包含匿名文本的块(C1),后跟块级元素,后跟另一个匿名文本块(C2).生成的框将是BODY周围的匿名块框,包含C1周围的匿名块框,P块框和C2周围的另一个匿名块框.
如果你有一个display:inline父元素,并且如果这个父元素有一个子元素,那么这个子元素display:block的存在似乎使得父元素几乎表现得像display:block,并忽略它被定义为的事实(因为父元素display:inline现在只包含匿名元素)和非匿名阻止子,即它不再包含任何内联子项)?
我的问题是,在这种情况下(有display:block孩子的地方)那么父母的定义之间有什么区别display:inline而不是display:block?
编辑:我更了解CSS 2.1标准,而不是各种浏览器实现在实践中的表现.
第二编辑:
规范中有一个区别.在下面的文档中,第二个"块"段的边框围绕整个段落和页面的整个宽度; 而第一个'内联段落的边框是在段落内的每一行(即使有多行),并且不超过每行的确切宽度(每行比页面宽度短).
<html>
<head>
<style type="text/css">
p.one
{
border-style:solid;
border-width:1px;
display: inline;
}
p.two
{
border-style:solid;
border-width:1px;
}
</style>
</head>
<body>
<p class="one">Some text. <b>Note:</b> The "border-width"
property does not work if it is used alone. Use the …Run Code Online (Sandbox Code Playgroud) 很抱歉第10000个人提出同样的问题.但我想我的情况略有不同.
该应用程序是我们希望在3g上安装Android手机客户端和轻型python Web服务服务器.
手机可以完成大部分工作并进行大量上传,图片,GPS等等.服务器必须每次上传时回复"确定".
我想用最轻的方法,最简单的电池.但阅读所有这些协议有点令人困惑,因为它们听起来都是一样的.
它们都处于同一水平吗?或者JSON可以成为RESTful等等吗?如上所述,这里的关键是上传.REST事务的所有输入都必须在URI中吗?即http://www.server.com/upload/0x81d058f82ac13.XML-RPC和SOAP的声音也与谷歌搜索类似.
所以这一次我对这个脚本没有任何问题.但是今天突然之间,它开始表现得很奇怪.
所以我有一个在iframe中加载的JavaScript页面.
这被注入到通过代理加载的页面中.
$(top.document).ready(),抛出错误说Permission denied ...
我很惊讶,所以我决定尝试加载一个不同的页面.
然后就不再抱怨了.
我重新启动了我的计算机,当我第一次通过代理加载页面时,因为包含JavaScript的iframe被注入到该页面中,我又遇到了同样的错误.
怎么了?这是我服务器或计算机上的问题吗?
在.Net 2中,代码:
namespace ns
{
class Class1
{
Nullable<int> a;
}
}
Run Code Online (Sandbox Code Playgroud)
不编译并给出错误:
找不到类型或命名空间名称'Nullable'(您是否缺少using指令或程序集引用?)
它缺少using System;但是这段代码:
namespace ns
{
class Class1
{
int? a;
}
}
Run Code Online (Sandbox Code Playgroud)
编译.
有人可以解释一下原因吗?