小编Dav*_*ave的帖子

System.Timers.Timer仅提供每秒最多64帧

我有一个应用程序,它使用System.Timers.Timer对象来引发由主窗体(Windows窗体,C#)处理的事件.我的问题是,无论我设置.Interval(甚至1毫秒)有多短,我每秒最多得64次.

我知道Forms计时器的精度限制为55毫秒,但这是System.Timer变体,而不是Forms表单.

该应用程序占用1%的CPU,因此它绝对不受CPU限制.所以它所做的只是:

  • 将Timer设置为1&nsp; ms
  • 触发事件时,增加_Count变量
  • 再次将其设置为1&nsp; ms并重复

即使没有其他工作要做,_Count每秒最多增加64次.

这是一个"回放"应用程序,它必须复制进来的数据包,它们之间只有1-2毫秒的延迟,所以我需要能够每秒可靠地发射1000次的东西(尽管如果我能满足100的话)是CPU限制的,我不是).

有什么想法吗?

.net c# timer winforms

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

关于外键数据如何存储在SQL中的问题

我知道这是超基本的,但这是我一直持有的假设,并且想验证它是否属实(通常,具体针对各种实现的细节)

假设我有一个包含文本列"Fruit"的表.在该专栏中,只出现了四个值中的一个:梨,苹果,香蕉和草莓.我有一百万行.

如果我将它提取到另一个具有Fruit列且只有那四行的表中,然后将原始列作为外键,那么它是否可以节省空间,而不是每次重复该数据(平均)25万次?

我假设四个水果名称只存储一次,而百万行现在有指针或索引或某种引用到第二个表中.

如果我的行值比短水果名称长,我认为节省/优化甚至更大.

mysql sql foreign-keys

9
推荐指数
2
解决办法
3823
查看次数

How to rewrite consecutive 'async with' statements into a loop?

我有以下摘录在各个方面都可以正常使用,但是它要求我知道我计划提前打开多少WebSocket。

相反,如果我从一个主机列表开始并且必须创建N个WebSocket连接,那么如何在循环中为N个3个Websocket(通过“异步与”)完成此代码的工作?

我已经在循环中等待着,这是我无法弄清楚如何“循环”的“与...异步”。

async with websockets.connect('ws://192.168.0.174:81') as websocket1:
    async with websockets.connect('ws://192.168.0.194:81') as websocket2:
        async with websockets.connect('ws://192.168.0.179:81') as websocket3:

            datatosend = GetBallData()

            for socket in [websocket1, websocket2, websocket3]:
                await socket.send(datatosend)
Run Code Online (Sandbox Code Playgroud)

python websocket async-await

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

在C#中有什么好的语法"如果foo不为null,则返回它的属性,否则返回null"

在我的下面的小代码片段中,我有一个简单动态对象的包装类,当它不为null时,我可以访问"id"和"name"这两个属性.对于那些在家里玩的人来说,这是一个Facebook对象.

无论如何,在我的GET访问器中你可以看到我必须检查我给出的动态对象是否为null,因为在空引用上引用动态属性将是AV.但是因为我可能是第一百万个人,所以我认为有一种更简洁和优雅的方式来表达这一点.

哦,强大的圣贤啊,请赐教.谢谢!

public class IdNamePair
{
    private dynamic _data;
    public IdNamePair(dynamic data)
    {
        _data = data;
    }
    public string Id
    {
        get
        {
            return (_data == null) ? null : _data.id;
        }
    }
    public string Name
    {
        get
        {
            return (_data == null) ? null :_data.name;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# c#-4.0

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

当表中的每一列都是外键时,它是好还是过度?

我正在构建一个可能的车辆数据库,其中每个条目都有一个Make,Model,Year和Engine.

我把它分成了制表(福特,雪佛兰,宝马等)和模型(Impala,Camaro,F-150等)和年(1920,...... 2012)和发动机(327,350等).

由于我现在每个Make,Model,Year和Engine都有一个表,并且每个表都有唯一的主键,因此主"MakesModelsAndYears"表中的每一行都只由四个外键组成.

这是否过度,或者真正存储的效率高于我创建独特索引的一个大表?我对"一个大桌子"方法的关注是像1970年这样的年代会重复多次(1970年雪佛兰Impala,1969年雪佛兰Camaro等),因为它有模型甚至引擎.

谢谢你的指导!

在此输入图像描述

跟进:

对于那些追随者,我将反馈结合到答案中并得出了这个模式.图像没有详细显示FK,但它们实际上是答案所暗示的:

在此输入图像描述

sql primary-key foreign-key-relationship

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

为什么在我的 WorldViewProj 矩阵中需要这个 Transpose()?

给定一个超级基础的顶点着色器,例如:

output.position = mul(position, _gWorldViewProj);
Run Code Online (Sandbox Code Playgroud)

我遇到了很多麻烦,因为我将 _gWorldViewProj 设置如下;我尝试了两者(有点晃动)以确保它不只是倒退。

mWorldViewProj = world * view * proj;
mWorldViewProj = proj * view * world;
Run Code Online (Sandbox Code Playgroud)

我的解决方案原来是:

mWorldView = mWorld * mView;
mWorldViewProj = XMMatrixTranspose(worldView * proj);
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么需要这个 XMMatrixTranspose 吗?我知道 XNA 和 HLSL 之间存在矩阵差异(我认为),但普通 C++ 和 HLSL 之间没有,尽管我可能是错的。

问题是我不知道是我错了还是我错了!所以如果有人能准确地告诉我为什么需要转置,我希望不会再犯同样的错误。

direct3d matrix hlsl matrix-multiplication

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