我目前正在使用MySql与C#结合的项目.DataGridView的数据由DB中多个表的连接提供.为了显示数据我使用以下,工作,代码:
adapter.SelectCommand = new MySqlCommand(
" SELECT" +
" l.lot AS Lot, "+
" m.comment AS Bemerkungen," +
... (multiple columns from different tables) ...
" FROM m " +
" JOIN m2p ON m.m2p_id = m2p.id" +
... (more joins) ...
, this._mySqlConnection);
dataGridView1.DataSource = data;
adapter.Fill(data);
Run Code Online (Sandbox Code Playgroud)
现在允许GUI的用户修改某个列("注释"列).所以我为CellEndEdit事件分配了一个eventHandler ,当用户修改了允许的列时,adapter.Update(data)就调用了它.现在这不会执行正确的操作.
要定义我的updatecommand,我使用了以下代码:
adapter.UpdateCommand = new MySqlCommand(
" UPDATE m" +
" JOIN l ON m.l_id = l.id" +
" SET m.comment = @comment" +
" WHERE l.lot …Run Code Online (Sandbox Code Playgroud) 我想知道是否有可能让一个线程睡眠一定量的CPU周期?
我想过只插入"nop",但我不确定它们是否会被优化掉,我希望得到一个高级解决方案.
有什么好看的你可以推荐我吗?如果不能阻止,手动插入的"nop"会被优化掉,而不会禁用所有优化?亲切的问候
LukasHäfliger
编辑:作为另一个问题:是否可以测量某个代码片段执行期间所需的周期数量?
我知道以前有人问过这个问题,但我还没有找到任何解决我的具体问题的方法。我将 Antlr4 与 C# 目标一起使用,并且我有以下词法分析器规则:
INT : [0-9]+
;
LETTER : [a-zA-Z_]+
;
WS : [ \t\r\n\u000C]+ -> skip
;
LineComment
: '#' ~[\r\n]* -> skip
;
Run Code Online (Sandbox Code Playgroud)
这些都是词法分析器规则,但是有很多解析器规则我不会在这里发布,因为我认为它们不相关。我遇到的问题是空格不会被跳过。当我在词法分析器运行我的输入后检查令牌流时,空格仍在那里,因此会导致错误。我使用的输入是比较基础的:
"fd 100"
Run Code Online (Sandbox Code Playgroud)
它解析完成,直到达到此解析器规则:
noSignFactor
: ':' ident #NoSignFactorArg
| integer #NoSignFactorInt
| float #NoSignFactorFloat
| BOOLEAN #NoSignFactorBool
| '(' expr ')' #NoSignFactorExpr
| 'not' factor #NoSignFactorNot
;
integer : INT #IntegerInt
;
Run Code Online (Sandbox Code Playgroud) 我尝试使用以下代码直接绘制到屏幕:
[DllImport("user32.dll")]
public static extern IntPtr GetDC(IntPtr ptr);
static void draw(Rectangle r, Brush b, IntPtr hwnd)
{
using (Graphics g = Graphics.FromHwnd(hwnd))
{
g.FillRectangle(b, r);
}
}
static void Main(string[] args)
{
draw(new Rectangle(0, 0, 400, 400), Brushes.PaleGoldenrod, GetDC(IntPtr.Zero));
}
Run Code Online (Sandbox Code Playgroud)
查阅文档和各种示例,这应该是有效的代码。尽管如此,我在以下行收到 OutOfMemoryException:
using(Graphics g = Graphics.FromHwnd(hwnd))
Run Code Online (Sandbox Code Playgroud)
由于我只查询单个句柄,因此我不明白如何引发此异常。此示例中没有其他代码。