我想在我的XNA-Networkgame中使用UDP-Sockets.现在我正在尝试编写可靠的Listenetraread,但是有一些问题.
如果我使用socket.Receive它会等到一个数据包.这对我的Listenetraread很好.我的线程有一个像这样的while循环:
while(Listen == true)
{
socket.Receive(...);
}
Run Code Online (Sandbox Code Playgroud)
但是如果我将Listen-Flag交换为false(如果我想停止收听),它将停留在最后一个.Receive()中.
然后我查看了Methodes .BeginReceive().如果数据包到达,它将调用一个方法.但要接收数据,我必须使用.EndReceive(),这就是我遇到的问题.我想仍然监听数据包,如果数据包到达,不要停止侦听.
所以我仍然使用带有".Receive()"的阻止版本.我可以通过调用:Thread.abort()来强制取消侦听线程,但这并不好.
目前我测试数据是否可用:
while(Listen == true)
{
if(socket.Available > 0)
{
socket.Receive(...);
}
}
Run Code Online (Sandbox Code Playgroud)
但我认为这不是最好的方法...如果在if子句之后不久,另一个线程正在调用socket.Receive(..),它将再次无意中卡住.有没有办法取消.Receive(..)方法?我试图设置超时,但如果.Receive超时,它将抛出异常......
我想要一个简单的udp-listening-thread,我可以优雅地停止.:-)在MSDN中,我没有找到一个侦听器示例,它正在侦听多个数据包.如何处理其他程序员呢?
避免输入单引号.但在编译项目时遇到错误:
[致命错误] StdCtrls.pas(1238):使用不同版本的StdCtrls.TEdit编译单元对话框
我是Silverlight的新手,虽然我一直在关注一些教程,但我想创建一个带有类库的新项目,以便我可以从我的页面的xaml.cs代码中使用它.
但是当我尝试添加我的类库项目时,我收到一条警告消息:
您只能在解决方案中向项目引用添加其他Silverlight项目
它说的很清楚.但这背后的原因是什么?为什么我不能将类库项目引用添加到Silverlight项目?
谢谢
我想生成一系列在00000001到99999999范围内的唯一随机数.
所以第一个可能是00001010,第二个可能是40002928等.
简单的方法是生成一个随机数并将其存储在数据库中,并且每次下次再次执行它并检查数据库中是否已存在该数字,如果存在,则生成一个新数据,再次检查等等.但是看起来不对,如果生成的项目数量很大,我可以重新生成一个数字,可能是100次.
有更聪明的方法吗?
编辑总是我忘记说为什么我想要这个,它可能会让事情更清楚,也许可以得到另一种选择,它是:我们想要为预订生成订单号,所以我们可以使用000001,000002等.但是我们不想让竞争对手知道创造了多少订单(因为它不是一个大批量的市场,我们不希望他们知道我们是在2个月后订购30还是订单100.所以我们想要一个随机的订单号(但却是唯一的)
我正在尝试模拟我悬停在图像上的效果,覆盖的半透明图像将从鼠标来自的方向淡入.当鼠标离开图像时(淡出+移开),反之亦然
我为此准备了一个测试页面.继续检查,它将阐明所需的效果.
我为此定义了一个HTML结构:
<div class="overlayLink">
<img src="assets/work/thumbnails/kreatude.jpg" alt="Kreatude" />
<div class="overlayLink_overlay_bg"> </div>
<div class="overlayLink_overlay_fg">
<span class="overlayLink_overlay_link"><a href="#">View Case Study</a></span>
<div class="top"> </div>
<div class="left"> </div>
<div class="right"> </div>
<div class="bottom"> </div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
和以下JS(我正在使用jQuery):
jQuery(document).ready(function () {
ourWork();
});
function ourWork(){
var inHandler = function(){
var blue_bg = jQuery(this).find('.overlayLink_overlay_bg');
var divClass = inClass;
blue_bg.stop(true,true).fadeIn();
var ml,mt;
if(divClass == 'left'){
ml = -260;
mt = 0;
}
else if(divClass == 'right'){
ml = 260;
mt = 0;
}
else if(divClass == 'top'){
ml = …Run Code Online (Sandbox Code Playgroud) 我试图实现Stack Overflow问题C++ Data Member Alignment和Array Packing.这是代码:
#include <stdio.h>
#include <stddef.h>
typedef struct {
unsigned char a;
unsigned char b;
unsigned char c;
}foo;
typedef struct{
unsigned short i;
unsigned char a;
unsigned char b;
unsigned char c;
} Bar;
typedef struct {foo f[5];} f_b;
typedef struct {Bar[5];} b_f;
#define ALIGNMENT_OF(t) offsetof( struct { char x; t test; }, test )
int main(void){
printf("Foo:: Size: %d; Alignment: %d\n", sizeof(foo), ALIGNMENT_OF(foo));
printf("Bar:: Size: %d; Alignment: %d\n", sizeof(Bar), ALIGNMENT_OF(Bar));
printf("F_B:: Size: …Run Code Online (Sandbox Code Playgroud) 我们使用序列化实现了通用深度复制机制.
import java.io.*;
public class CopyUtil {
public static Object clone(Object source) {
Object retVal = null;
try {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(baos);
oos.writeObject(source);
oos.flush();
oos.close();
ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));
retVal = in.readObject();
} catch (IOException ex) {
ex.printStackTrace();
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
}
return retVal;
}
}
Run Code Online (Sandbox Code Playgroud)
存在相对大量的对象类,它们一直在不断发展,需要维护 - 这就是我们继续使用通用克隆机制的原因.我们没有保持津津乐道的想法readObject(),并writeObject()在200多个班.
不幸的是,Java中的序列化机制相对较慢,当我们的系统处于峰值负载时,我们遇到了问题.
是否有任何建议的方法可以让我们如何加快速度或者(如果我们错误地执行了这一点)克隆对象的替代方法?
我最近一直在想.假设我们正在使用JSF + Spring + JPA/Hibernate(或任何其他技术)进行webapp,并且假设我们有一个"用户"实体.我们希望用户拥有唯一的登录信息.如果我们想要这样做,那么我们可以在"登录"列上放置一个@UniqueConstraint,但是我们的应用程序仍然需要在用户注册期间检查用户输入是否有效(唯一),没有它,并且只有数据库约束我们只会得到一个错误.这让我想到,DB约束真的有必要/有帮助吗?只有当有人试图破解我们时,我能想到的唯一两次才会想到(但我想我们的应用程序应该是SQL注入证明)或者我们尝试手动更改数据库内容(不应该真的发生了).实际上现在我考虑一下,DB约束在一般必要/良好实践中是什么?就像弦乐的长度等.
每当ActiveControl变化时我都想运行一个小程序.我怎样才能做到这一点?我想过有一个计时器可以在一定的时间间隔内检查主动控制,并在它发生变化时触发我的程序,但是有更优雅的解决方案吗?
我最近正在玩可扩展列表视图.
我试图获得一个列表视图,其中有一个复选框作为子视图的元素之一.
我找到了这个教程,http://mylifewithandroid.blogspot.com/2010/02/expandable-lists-and-check-boxes.html,它看起来很完美.然而,当我编译它并开始玩它时,我意识到它非常错.选中一个组中的一个框可能会导致另一个组中的随机框检查或取消选中.
这是我能找到的唯一一个教程,这似乎是一个可以在很多应用程序中使用的东西,所以我想知道,还有其他任何好的教程或资源来处理这个问题吗?
或者甚至更好,是否有人愿意展示他们自己的代码让这个工作...
谢谢
千电子伏