我创建了一个运行某种方法的线程.但有时我想杀死线程,即使它仍在工作.我怎样才能做到这一点?我尝试了Thread.Abort(),但它显示了一个消息框,说"线程已中止".我该怎么办?
我想将我的可执行文件的进程称为ABC.我怎么能这样做?我尝试将我的项目名称定义为ABC,但之后我将有一个ABC.vshost.
我觉得很奇怪(我想!).如果我尝试在yes()方法中放置一个断点,它将永远不会在执行该函数时暂停程序.如果我尝试对任何其他代码行执行相同操作,它将按预期工作.这是一个错误,还是有什么东西逃脱了我?
过滤器将返回2个对象,除调试器外,一切似乎都按预期工作.
private void Form1_Load(object sender, EventArgs e) {
List<LOL> list = new List<LOL>();
list.Add(new LOL());
list.Add(new LOL());
IEnumerable<LOL> filter = list.Where(
delegate(LOL lol) {
return lol.yes();
}
);
string l = ""; <------this is hit by the debugger
}
class LOL {
public bool yes() {
bool ret = true; <---------this is NOT hit by the debugger
return ret;
}
}
Run Code Online (Sandbox Code Playgroud) 我在我的类上重载了==运算符,如下所示:
public static bool operator ==(Table pt1, Table pt2) {
return Compare(pt1, pt2) == 0 && pt1.TableName == pt2.TableName;
}
Run Code Online (Sandbox Code Playgroud)
比较将像strcmp在c ++中一样工作,返回一个整数.问题是,如果我执行if(MY_CLASS == null),它将调用我的==运算符,从而调用我的Compare函数.什么是alternatiev?检查pt1和pt2以查看它们是否为空?或者只是在pt2?
如果一个名为SetWindowsHookEx的应用程序(我的,或者在外部进程中),我是否可以取消钩子?请记住,不是我把钩子放在第一位,所以我没有任何变量或指向原始钩子的指针.
我一直试图这样做,但由于某种原因,这只是给我奇怪的结果:
int bpp = Screen.PrimaryScreen.BitsPerPixel;
string fontName = "Tahoma";
Font font = new Font(fontName, 10 * bpp, GraphicsUnit.Point);
Bitmap bm = new Bitmap(20 * bpp, 20 * bpp);
Graphics g = Graphics.FromImage(bm);
TextRenderer.DrawText(g, "a", font, new Rectangle(0, 0, 5 * bpp, 6 * bpp), Color.Black);
g.Flush();
pictureBox1.Image = bm;
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?我没有看到图片上印有任何东西.如果我删除所有bpp引用,我可以看到它,但它非常小.
我有一个HWND变量,我想指向一个硬编码的值,仅用于测试目的.我猜HWND是(int*)的typedef,因此导致某种间接性.正确的代码应该是什么样的?