小编Uwe*_*eim的帖子

如何修复WinForms表单中的闪烁?

我不断画帧,我需要表格不要闪烁.我该如何做到这一点?

public partial class Form1 : Form
{
    Image[] dude = new Image[3];
    static int renderpoint = 0;
    int lastimage = 0;

    public Form1()
    {
        dude[1] = new Bitmap(@"snipe1.bmp");
        dude[0] = new Bitmap(@"snipe0.bmp");

        InitializeComponent();
    }

    private void Form1_Shown(object sender, EventArgs e)
    {
        MainLoop();
    }

    private void MainLoop()
    {
        double FPS = 10;

        long ticks1 = 0;
        long ticks2 = 0;
        double interval = (double)Stopwatch.Frequency / FPS;

        while (true)
        {
            ticks2 = Stopwatch.GetTimestamp();
            if (ticks2 >= ticks1 + interval)
            {
                ticks1 …
Run Code Online (Sandbox Code Playgroud)

.net c# animation winforms

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

在C#中将double转换为hex

我有这个价值:

double headingAngle = 135.34375;
Run Code Online (Sandbox Code Playgroud)

我想将其转换为HEX并将HEX打印到控制台.我已经将一个字符串和int转换为它们各自的HEX值,但是双精度似乎要复杂得多.有人能指出我正确的方向吗?

.net c# double hex

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

线程和代表 - 我不完全理解他们的关系

我写了一个看起来像这样的代码:

Thread t = new Thread(() => createSomething(dt, start, finish) );
t.Start();
Run Code Online (Sandbox Code Playgroud)

它有效(有时几乎感觉有多个线程).

但我不使用任何代表.

  1. 没有代表的踩踏是什么意思?
  2. 如果需要代表 - 那么请告诉我与代表的联系是什么以及如何.

c# multithreading delegates type-inference

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

如何单击webbrowser控件中的按钮?

例如,使用代码而没有用户输入,我如何让我的程序点击谷歌上的"搜索"按钮(假设我已填写搜索框并在google.com上)

c# browser button

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

如何在DateTime值数组中查找平均日期/时间

如果我有一个DateTime值数组:

List<DateTime> arrayDateTimes;
Run Code Online (Sandbox Code Playgroud)

在它们中找到平均DateTime的方法是什么?

例如,如果我有:

2003-May-21 15:00:00
2003-May-21 19:00:00
2003-May-21 20:00:00
Run Code Online (Sandbox Code Playgroud)

平均值应该是:

2003-May-21 18:00:00
Run Code Online (Sandbox Code Playgroud)

c# datetime average

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

使用Graphics.DrawString时动态调整字体大小以适应空间

有没有人有提示,而你可以动态调整字体大小以适应特定区域?例如,我有一个800x110的矩形,我想用最大尺寸字体填充它,这将支持我试图显示的整个字符串.

Bitmap bitmap = new Bitmap(800, 110);

using (Graphics graphics = Graphics.FromImage(bitmap))
using (Font font1 = new Font("Arial", 120, FontStyle.Regular, GraphicsUnit.Pixel))
{
    Rectangle rect1 = new Rectangle(0, 0, 800, 110);

    StringFormat stringFormat = new StringFormat();
    stringFormat.Alignment = StringAlignment.Center;
    stringFormat.LineAlignment = StringAlignment.Center;

    graphics.TextRenderingHint = TextRenderingHint.ClearTypeGridFit;
    graphics.DrawString("Billy Reallylonglastnameinstein", font1, Brushes.Red, rect1, stringFormat);
} 

bitmap.Save(Server.MapPath("~/Fonts/" + System.Guid.NewGuid() + ".png"));
Run Code Online (Sandbox Code Playgroud)

显然,整个名称不会在大字体大小提供的空间中呈现.必须有一个简单的方法来做到这一点?

.net c# fonts system.drawing

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

CefSharp LoadHtml

有人可以向我解释一下CefSharp LoadHtml功能是如何工作的吗?

LoadHtml(string html, string url)
Run Code Online (Sandbox Code Playgroud)

什么的htmlurl参数代表什么?

我有兴趣将原始HTML字符串中的页面加载到CefSharp浏览器中.

c# chromium-embedded cefsharp

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

空传播算子和foreach

阅读了很多关于Null传播算子的内容?.,我没有回答它是否有助于以下场景.

抛出的代码:

int[] values = null;

foreach ( var i in values ) // Throws since values is null.
{
    // ...
}
Run Code Online (Sandbox Code Playgroud)

为了使其工作,我必须null在访问values变量之前添加一个检查.

很可能上述代码超出了Null传播运算符的设计考虑范围.不过,可以肯定的是,我不得不问.

我的问题:

尝试nullforeach循环中访问集合时,Null传播运算符是否有用?

c# null c#-6.0 null-propagation-operator

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

在后台运行void方法

我想使用rxjava在后台运行一个方法.我不关心结果.

void myHeavyMethod() { (...) }
Run Code Online (Sandbox Code Playgroud)

到目前为止,我唯一的解决方案是将返回类型修改为例如boolean.

boolean myHeavyMethod() { (...) return true; }
Run Code Online (Sandbox Code Playgroud)

然后我跑:

Completable.defer(() -> Completable.fromCallable(this::myHeavyMethod))
        .subscribeOn(Schedulers.computation())
        .subscribe(
                () -> {},
                throwable -> Log.e(TAG, throwable.getMessage(), throwable)
        );
Run Code Online (Sandbox Code Playgroud)

有没有办法保持void返回类型?

rx-java rx-java2

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

JavaScript 到 C# 数值精度损失

当使用 SignalR 和 MessagePack 在 JavaScript 和 C# 之间序列化和反序列化值时,我在接收端看到 C# 中的一些精度损失。

例如,我将值 0.005 从 JavaScript 发送到 C#。当反序列化的值出现在 C# 端时,我得到的值0.004999999888241291很接近,但不是 0.005。JavaScript 端的值是Number和我正在使用的 C# 端double

我读过 JavaScript 无法准确表示浮点数,这会导致像0.1 + 0.2 == 0.30000000000000004. 我怀疑我看到的问题与 JavaScript 的这个特性有关。

有趣的部分是,我没有看到同样的问题反过来。将 0.005 从 C# 发送到 JavaScript 会导致 JavaScript 中的值 0.005。

编辑:来自 C# 的值只是在 JS 调试器窗口中缩短了。正如@Pete 提到的,它确实扩展到不完全是 0.5 的值(0.005000000000000000104083408558)。这意味着差异至少发生在双方。

JSON 序列化没有相同的问题,因为我假设它通过字符串传递,这使得接收环境处于控制状态,并将值解析为其本机数字类型。

我想知道是否有一种方法可以使用二进制序列化在双方都有匹配的值。

如果不是,这是否意味着无法在 JavaScript 和 C# 之间进行 100% 准确的二进制转换?

使用的技术:

  • JavaScript
  • 带有 SignalR 和 msgpack5 的 .Net Core

我的代码基于 …

javascript c# binary-serialization msgpack signalr

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