问题列表 - 第10909页

NHibernate会话管理?

首先,让我简要介绍一下这个场景.我正在编写一个简单的游戏,其中几乎所有工作都在服务器端完成,并且有一个瘦客户端供玩家访问.玩家登录或创建帐户,然后可以通过在网格中移动来与游戏交互.当他们进入一个小区时,他们应该被告知该小区中的其他玩家,同样地,该小区中的其他玩家将被告知该玩家进入该小区.可以进行许多其他的交互和操作,但是不值得详细介绍它们,因为它更加相同.当玩家退出然后重新登录或者如果服务器停机并重新启动时,所有游戏状态都应该持续存在,但是如果服务器崩溃,那么我是否会失去10分钟左右的更改并不重要.

我已经决定使用NHibernate和一个SQLite数据库了,所以我一直在阅读很多关于NHibernate的内容,按照教程和编写一些示例应用程序,我对如何应对这个问题感到非常困惑!

我的问题是:管理会话的最佳方式是什么?只是从我理解的少量,所有这些可能性跳出来对我:

  • 拥有一个始终打开的会话,所有客户端都使用该会话
  • 为每个连接并定期刷新它的客户端设置一个会话
  • 每次我必须使用任何持久化实体时打开一个会话,并在更新,插入,删除或查询完成后立即关闭它
  • 为每个客户端建立一个会话,但保持断开状态,只有在需要使用它时才重新连接
  • 与上面相同,但保持连接状态,只在一段时间不活动后断开连接
  • 保持实体分离,并且每隔10分钟仅附加一次,例如,提交更改

我可以使用什么样的策略来获得不错的性能,因为每秒可能有数百个客户端可能会有很多更新,插入,删除和查询,而且它们都必须相互一致?

另一个小问题:我应该如何以有效的方式使用交易?是否可以将每一次更改都放在自己的事务中,或者当我有数百个客户端都试图改变网格中的单元格时,这种情况会不会很糟糕?我是否应该尝试弄清楚如何将类似的更新批量放在一起并将它们放在一个事务中,还是会变得太复杂?我甚至需要大部分交易吗?

c# database nhibernate session transactions

8
推荐指数
1
解决办法
7179
查看次数

Java死锁提示

我正在用java做一些练习(有些人可能会认为代码来自哪里).我尝试使用以下代码来挑衅死锁:

class Resource {

    public Integer value = 42;
}

public class DeadLockRisk implements Runnable {

    private Resource resourceA = new Resource();
    private Resource resourceB = new Resource();

    public void write(int a, int b) {

        System.out.println(Thread.currentThread().getName() + " try write Lock A");

        synchronized(resourceA) {

            System.out.println(Thread.currentThread().getName() + " write Lock A");
            System.out.println(Thread.currentThread().getName() + " try write Lock B");

            synchronized(resourceB) {

                System.out.println(Thread.currentThread().getName() + " write Lock B");

                resourceA.value = a;
                resourceB.value = b;
        //sit on it!
        //try { Thread.sleep(5000); } catch (Exception …
Run Code Online (Sandbox Code Playgroud)

java deadlock

0
推荐指数
1
解决办法
124
查看次数

网页的字体大小和行高

在可读性方面,字体大小和行高的最佳值是多少?

我自己更喜欢巨大的字体大小和更高的行高,就像Dive in Python 3中使用的那样.

html css

4
推荐指数
2
解决办法
1万
查看次数

如何阻止调用javascript函数的#link从跳转到页面顶部

你如何阻止我这样的链接:

<a href="#" onClick="submitComment()">
Run Code Online (Sandbox Code Playgroud)

从点击后跳到页面顶部?

html javascript

16
推荐指数
2
解决办法
2万
查看次数

一次性删除所有事件处理程序

问题:我有一个包含对象列表的文档类.这些对象引发事件,如SolutionExpired,DisplayExpired等文件需要对此作出回应.

文档有时可以交换对象,但是单个对象永远不应该是多个文档的"一部分".

我的文档类包含许多用作事件处理程序的方法.每当一个对象进入文档时,我就会AddHandler用来设置事件,每当从文档中删除一个对象时,我就会RemoveHandler用来撤消损坏.但是,有些情况下很难确保所有步骤都得到适当的处理,因此我最终可能会遇到流氓事件处理程序.

长话短说; 如何删除指向特定方法的所有处理程序?注意,我没有可能的事件源列表,这些可以存储在任何地方.

就像是:

RemoveHandler *.SolutionExpired, AddressOf DefObj_SolutionExpired
Run Code Online (Sandbox Code Playgroud)

vb.net events

5
推荐指数
1
解决办法
2万
查看次数

本周的第一天和上周

我目前正在获得本周的第一天和上周以2月12日格式的vbscript函数值.我想知道是否可以使用SQL查询.

sql sql-server

3
推荐指数
1
解决办法
2万
查看次数

如何在不改变格式信息的情况下更改剪贴板上的文本?

另一个剪贴板问题

当文本放到剪贴板上时,它经常以多种方式进行,通常有和没有格式化信息.我想知道的是 - 如何在不改变格式的情况下更改剪贴板上的文本.换句话说,我想改变文本方面,但保持格式完全相同.

这又是我的"TextScrubber"应用程序,我想从剪贴板上的文本中删除换行符,但我不想改变有关该文本的格式信息.

我希望通过迭代所有存在的格式,存储每个格式,然后在文本被擦除后重新插入它,我不必"强力"它.

delphi clipboard

1
推荐指数
1
解决办法
450
查看次数

谷歌地图+ jQuery:渲染bug

在jquery-ui选项卡中放置谷歌地图时,地图无法在某些情况下正确显示.重现:

  1. 这里
  2. 点击"列表"链接
  3. 调整浏览器窗口的大小
  4. 点击"地图"链接

观察一些地名叠加正确绘制,但其他地方没有.我实际上已经删除了所有jquery-ui的东西以限制问题的范围,它似乎只是display:hide/display:block的应用程序导致问题.

UPDATE

偶尔也会出现错误,只是在display:none/block之间切换时 - 例如没有调整大小.这似乎是IE中最常见的(8).

css jquery google-maps jquery-ui

7
推荐指数
1
解决办法
1万
查看次数

Flex/Bison IDE?

我正在寻找一个良好的开发环境,可以在flex或bison或两者上工作.

是否有任何IDE具有这些功能和/或适用于此?

(如果不是,那么下一个最常见的问题是是否有带IDE的词法分析器/解析器生成器?)

谢谢〜亚历克斯

ide bison flex-lexer

13
推荐指数
2
解决办法
1万
查看次数

多线程类加载可能吗?

是否可以在Java中实现多线程类加载器?在元驱动的框架中,我需要提前加载数百个类,即不像系统类加载器那样懒散.为了加速这一点,我想更好地利用当前的多核CPU.在我深入研究之前,如果有人已经在这个问题上有一些经验或者可能完全清楚可能defineClass()是这种情况下的瓶颈,我会感兴趣.

谢谢安德烈

java multithreading classloader

6
推荐指数
1
解决办法
2291
查看次数