小编Ale*_*rov的帖子

C#WinForms:使用一个或多个其他线程绘图.怎么样?

如果我有一个包含各种几何形状(线条,矩形,圆形等)的大图,那么线程需要花费大量时间来绘制所有内容.但在现实生活中,一栋建筑由一个以上的工人建造.因此,如果绘图是建筑物而线程是构建器,那么绘制速度会快得多.但我想知道如何.

你能告诉我怎么样吗?它是否可能(虽然我已经问过,答案是"是")?是否值得使用?有什么风险?

如果有我错过的问题,请告诉我他们并回答他们.

谢谢!

c# multithreading system.drawing winforms

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

C#线程:初学者练习

到目前为止,我一直在尝试通过在项目中立即实现线程来掌握线程.我一直试图这样做很长一段时间.但这没有产生任何结果,也没有给我任何线程经验.尝试给我的唯一一点就是C#中的线程有许多重要的改进.

我找不到任何关于线程的简单练习.我正在寻找你必须制作不同简单的控制台应用程序的练习.我正在寻找简单的练习,这样我就可以了解在处理线程时如何工作并掌握这个想法.我看过一本难以编程的练习书随着问题的数量变得越来越难.我正在寻找类似的东西.之后我会继续处理更复杂的东西,并尝试在我的项目中添加线程(使用Windows窗体制作).

我在哪里可以找到关于C#中线程的练习/练习册?

编辑:

我不是在寻找任何教程 - 我可以自己找到它们.我只在寻找练习和练习.如果没有这样的练习,请告诉我.

c# multithreading

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

快速查找是否有2个或更多相等的数字

我有一组N个不同的数字经常变化.每次更改后,两个或更多数字都有可能变得相等,我不希望这样.数字N可以与最大可能整数一样大.知道经常发生变化,我不想在每次更改后将每个数字与其余数字进行比较.

如何快速查找阵列中是否至少有2个相等的数字?

language-agnostic arrays algorithm hashmap binary-search-tree

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

双面板缓冲

可以通过将"AllPaintingInWmPaint","UserPaint"和"DoubleBuffer"ControlStyles的值设置为"true"(this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.DoubleBuffer, true))来完成对整个表单的双缓冲.

但是System.Windows.Forms.Panel不会发生这种情况,因为该类不允许我这样做.我找到了一个解决方案:http://bytes.com/topic/c-sharp/answers/267635-double-buffering-panel-control.我也试过这个:Winforms Double Buffering.它是滞后的,即使它用在一个小图纸上,我有一些我在表格中使用的自定义资源和其他东西,因为我不会把整个表格变成一张图纸.第二个似乎会引起问题.还有其他方法吗?

我问这个是因为我不希望在调整表单大小时,面板上的绘图一直闪烁.如果有办法在没有双缓冲的情况下摆脱闪烁,我会很高兴知道.

c# system.drawing panel winforms double-buffering

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

C++粗俗分数

是否有一个可以用作变量的粗俗部分?

例如:我想将整数1和3分开.结果为int0,double结果为0,333333333.但是,我希望结果是准确的1/3,然后在程序中的其他方程中使用它.

是否有一个类似于integer(int),decimal(double)等的变量(以类似的方式声明和使用)?或者我必须自己制作一个?

起初我在想如何自己做,但我失败了.

谢谢!

c++ variables

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

C#Winforms:一个可以控制UI并且可以"休眠"而不会暂停整个程序的线程.怎么样?

好...

在同一个程序中看起来像WinForms和Threading是我无法轻易掌握的东西.

我正在尝试从两个图片框(使用按钮)和文本框中制作自定义数字向上.是的,我可以使用默认的NumericUpDown表单,但我想做一个不同的表单.

我试图用计时器(System.Windows.Forms.Timer)来做到这一点.问题是当一个计时器遇到"Thread.Sleep(int)"时,整个程序"陷入睡眠".

我试过线程.某些类型的线程无法控制UI.然后我尝试了这个

private void declare_thread()
{
    //some work
    Thread delay = new Thread(new ThreadStart(delay0));
    delay.Start();
    //some more work
}
//other functions
private void delay0()
{
    //delay_for_500ms.WaitOne();
    this.Invoke((ThreadStart)delegate()
    {
    Thread.Sleep(500);
    if (is_mouse_down)
    timer1.Enabled = true;
    });
}
Run Code Online (Sandbox Code Playgroud)

结果与我仅使用计时器的结果相同.

所以,我想制作自定义数字向上.但我无法做到对.我知道我做错了.我想创建一个可以控制UI的线程,并且在调用"Thread.Sleep(int)"时不会使整个程序暂停.

请给我初学者的答案.到目前为止,我还没有找到一个可以向我展示正确方法的好答案,而且很容易理解.

c# multithreading winforms

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

Div不像漂浮儿童的总高度那么高

好的,我在理解float属性的行为时遇到了问题.

页面宽度为750像素.为了使它位于屏幕的中心,我使用了以下代码:

<div align="center">
    <div align="left" style="width:750px; border-style:double;">
        stuff
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

主750 px宽容器中的元素是具有以下样式的其他容器:

div.infoCont //these containers usualy have two more containers within- for an image and text
{
    width: 740px;
    position: relative;
    left: 2px;
    border-style: double; //for debugging
    float: left;
}
div.textContNI //text only
{
    width: 730px;
    float: left;
    clear: right;
    border-style: double; //for debugging
}
Run Code Online (Sandbox Code Playgroud)

小容器表现正常(它们应该是,因为它们的位置和我想要的方式一样大).但是主容器的高度比较小的容器的总高度少了很多...... 0 px.它忽略了所有较小容器的高度.

这可以通过在主容器的结束标记之前添加文本来"修复".我还可以使用<br>标签操作高度而不使用文本:高度变得与边框的总高度一样大.另一种"修复"问题的方法是添加float:left;样式,但是将容器放在窗口的左侧,我不能拥有它.

我错过了什么,我不知道它是什么.

为什么主容器会忽略其中容器的总高度,我该如何处理这个错误呢?

html css containers css-float

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

将对象添加到向量时出现C++错误

我是新的矢量.我正在尝试将对象添加到矢量中.但程序无法编译,因为我的代码有问题.但我不知道它是什么.错误是:

error C2664: 'void std::vector<_Ty>::push_back(_Ty &&)' : cannot convert parameter 1 from 'Line (void)' to 'Line &&'
Run Code Online (Sandbox Code Playgroud)

代码是:

Line help_line ();
cin >> ln_quan;
vector <Line> figure_line;
for (int i = 0 ; i < ln_quan ; i++)
{
    figure_line.push_back(help_line);
}
Run Code Online (Sandbox Code Playgroud)

编译器说错误位于第6行(figure_line.push_back(help_line);).

我放弃了试图找到一个解释如何添加对象的教程(在做这些事情时我很容易放弃......).

'Line(void)'和'Line &&'是什么意思?'Line(void)'是'Line'类吗?如果是这样,在这种情况下'(void)'是什么意思?

c++ compiler-errors vector syntax-error

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

c ++为什么在关于字符串的教程中使用了一个字符数组?

我见过使用字符数组的教程,以便用字符串对象演示一些东西.例如,教程:

http://www.cplusplus.com/reference/string/string/copy/

http://www.cplusplus.com/reference/clibrary/cstdlib/atoi/

我见过没有使用char数组的教程来演示一些东西.在学校,老师也不使用任何阵列.对我来说,在我阅读教程时,使用数组有点令人困惑(知道我还是C++的初学者).

我只是想知道为什么有教程使用char数组来显示一个或多个字符串对象可以做的事情.

c++ string char

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

C++将具有构造函数的对象添加到数组中

当我声明一个数组时,所有变量/对象都被声明.但是对象会发生什么,如果他们的类有构造函数?我正在使用的类有2个构造函数 - 一个没有参数,一个有一些参数.声明后第一个构造函数是否会激活?或者没有构建器会激活?

如果第一种情况发生,我将不得不创建一个替换构造函数的函数.

那么,新声明的数组中的对象会发生什么?

c++ arrays object

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