当我写一个消息驱动的应用程序.就像标准的Windows应用程序一样,它广泛使用消息传递进行内部操作,这对于线程化的最佳方法是什么?
在我看来,基本上有三种方法(如果你有任何其他设置,请分享):
那么,三者之间是否存在显着的性能差异?以下是一些一般性的想法:显然,最后两个选项受益于多个处理器的情况.另外,如果任何线程正在等待外部事件,则其他线程仍然可以处理不相关的消息.但忽略这一点,似乎多线程只增加开销(线程切换,更不用说更复杂的同步情况).
另一个问题:您是否建议在标准的Windows消息传递系统上实现这样的系统,或者实现单独的队列机制,为什么?
我正在寻找扭曲图像的解决方案.Flash只允许倾斜基于矢量的对象.我试图使用矩阵但无法获得适当的解决方案.我们的目标是做一个三折小册子,分两步折叠.
有人有提示或示例代码吗?
UPDATE!
也许我的信息有点错误.Flash允许将例如矩形倾斜为菱形.
------- -------
| | \ \
| | => \ \
| | \ \
------- -------
Run Code Online (Sandbox Code Playgroud)
这不是我的意思.我可以为矢量和位图做这样的WYSIWYG偏移.我需要做这样的事情:
------- |`
| | | `|
| | => | |
| | | ´
------- |´
Run Code Online (Sandbox Code Playgroud)
根据Bryan Grezeszak的回答,我在链接页面上玩转换动画片段.当我说没有可能用矩阵做这个时,我是对的吗?如果是,是否还有其他可能性来实现这一目标?
谢谢=)
我一直在学习.NET中泛型的基础知识.但是,我没有看到通用的等价物Hashtable.请分享一些示例C#代码以创建通用哈希表类.
在WPF中,是否有一个事件可用于确定TabControl选定的选项卡何时更改?
我尝试过使用TabControl.SelectionChanged但是当一个选项卡中的孩子选择被更改时,它会被多次激活.
我最近搞砸了我的git repo,想知道是否有任何补救措施.
我的设置是这样的:
Central repo on github.
Personal repo on github (which is a fork of Central)
+Central is setup as remote (upstream/master)
+Master branch (origin/master)
+Feature branch (origin/feature)
Run Code Online (Sandbox Code Playgroud)
我的工作流程是这样的:
Need to fix something in Central:
1. checkout Master
2. Make changes
3. Pull from upstream/master and merge
3. Commit, push to upstream/master
Need to work on a New Feature:
1. Checkout/Create Feature branch
2. Work work work
3. Pull from upstream/master and merge
4. Commit, push to upstream/master
Run Code Online (Sandbox Code Playgroud)
这样我在我的主人分支中总是有一个原始的中央状态. …
我会更具体.
假设我已经为我的WCF服务定义了合同.我有两个不同的WCF客户端参考这个服务:"ClientA"和"ClientB".
现在,假设我想在我的服务中添加一个操作(方法),只有"ClientB"才会使用,让我说我将这个操作添加到合同中,"ClientB"更新了它的引用,我们都很高兴.clientA是否还需要更新它的引用,即使它没有使用新操作?
有没有办法验证iPhone设备ID?我希望能够通过HTTP请求接受从iPhone用户提交的设备ID,并验证它们是否与合法设备绑定.
我刚刚完成了Scott Gu的Nerd Diner教程.我发现它非常有用,因为它不仅教授了ASP.Net MVC的基础知识,还介绍了如何使用存储库,验证,单元测试,Ajax等.非常好,但仍然可以管理.
但是,我很好奇他的网站结构:
具体来说,他为每个对象使用了这个视图结构:
/ ModelObject/Edit/
/ ModelObject/Create /
然后提取两个视图之间的公共元素并将它们放入局部.
我理解逻辑,但如果你的数据库中有一个中等数量的表,它似乎会导致"查看爆炸".
斯科特真的很好,所以我假设他的结构是对的.但我想知道为什么.
谢谢!
[编辑澄清]
我意识到很多时候需要有多个动作(和视图)来处理创建和编辑中的差异.这是非常简单的编辑和创建的情况,其中两个动作之间的唯一区别是在一种情况下模型具有ID并且需要更新,而在另一种情况下模型没有,因此它需要是插入.
在这种情况下,违反"哑视图"规则是否使用相同的视图来处理导致重大问题的两种情况?
我创建了以下结构,它将唯一的double值映射到一对或多对整数:
@SuppressWarnings("boxing")
private static final HashMap<Double, Integer[][]> rules =
new HashMap<Double, Integer[][]>() {
private static final long serialVersionUID = 1L;
{
put(-0.6, new Integer[][] { { 1, 3 } });
put(-0.3, new Integer[][] { { 2, 2 } });
put(0.0, new Integer[][] { { 2, 4 }, { 3, 3 }, { 4, 2 } });
put(0.3, new Integer[][] { { 4, 4 } });
put(0.6, new Integer[][] { { 5, 3 } });
}
};
Run Code Online (Sandbox Code Playgroud)
我可以重写这个更简单 - 即不必处理警告(serialVersionUID,拳击),它是如此冗长?
.net ×2
c# ×2
iphone ×2
asp.net-mvc ×1
c++ ×1
cocoa-touch ×1
events ×1
flash ×1
generics ×1
git ×1
github ×1
java ×1
objective-c ×1
security ×1
tabcontrol ×1
wcf ×1
winapi ×1
wpf ×1