小编Cor*_*urn的帖子

IsBackground对.Net线程的影响?

我知道当main方法正在运行并且正在运行的其他线程是后台线程时,应用程序退出.除了延迟程序终止之外,背景线程是否做了不同的事情或者与非背景线程做出不同的响应?

.net multithreading backgroundworker

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

同时检测鼠标左键和右键?

我正在重新制作windows Minesweeper(来自XP),他们所包含的内容是,如果你同时用鼠标左键单击一个带有尽可能多的旗号的数字,它会显示该数字周围的所有其他隐藏的牌.

我很难知道何时同时按下左右鼠标按钮......我正在使用一对bool,每个按钮一个,OnMouseDown和OnMouseUp事件,但如果是2个按钮在完全相同的时间(或非常接近)单击,然后只有一个MouseDown事件关闭而另一个没有...如果您单击并按住其中一个按钮然后单击并按住另一个,代码可以正常工作.

有没有更好的方法来检测这种"双重"点击?

编辑:

好吧,小故事为什么我把它搞砸了(它一直都有效).

我有一个运行Windows 7的macbook pro.对于那些不知道的人,macbook pro只有一个鼠标按钮栏,通常会留下点击,但是如果你放下2个手指就可以点击右键,这样你就可以'两者都做(并且没有中间点击).所以我正在构建我的应用程序并将其发送给我的朋友,他告诉我它不起作用,所以我发布了这个问题.我终于决定在我的另一台笔记本电脑上试用它,带有2个鼠标按键的戴尔XPS ......一旦它在那里工作,我将它传递给其他朋友,他们确认它有效.我不知道我的第一个朋友是如何搞砸了,但故事的道德是不要买任何苹果.至少那是我得到的道德.

c# mouse click mouseevent mouseclick-event

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

基础SQL知识?

我即将参加挑战测试,所以我不必参加数据库处理课程.尽管过去5年我一直在使用数据库,但我对这项测试感到不安.这是50个问题,有2个部分:真/假部分和实际编写SQL命令的部分.它是非平台特定的.

进入这个测试我应该知道什么基本的东西?您需要贵公司的新SQL开发人员知道怎么做?什么问题可能是技巧问题?

编辑:

就像我说的那样,它是非平台特定的,但它在所有方面都是非语言特定的.不会有关于如何连接ASP.Net,PHP或其他语言的问题.

sql

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

接受触摸而不移动鼠标?

我正在为我的平板电脑编写一个快乐垫模拟器,以获得乐趣和挑战.我可以触摸在我的表格上绘制的按钮,并以另一种形式激活按键.问题是许多游戏(我正在测试我的世界)使用鼠标偏移让玩家环顾世界.我的问题是,当我触摸一个按钮时,鼠标会移动到那里,游戏中的玩家会疯狂地环顾四周.

如何在不移动鼠标的情况下使用WPF接受C#中的触摸输入?

c# wpf touch

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

用于开发Powershell的VS2010插件/扩展?

我现在用谷歌搜索了一段时间,我找不到我正在寻找的东西(如果他们在那里).

我正在寻找一个用于编写Cmdlet和PSCmdlet管理单元的项目模板以及用于编写ps1脚本的插件.我也愿意为你推荐的Powershell尝试任何其他开发工具.

我在哪里可以找到Powershell的这些和其他开发工具?

powershell visual-studio-2010 visual-studio-extensions

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

转换DayLight节省时间附近的DateTimes?

我正在开发运行24/7/365运行GPS设备报告的软件.部分报告输出要求我们将存储的数据库时间(保存在中央标准时间)转换为用户计时器(任何请求的时区).我们每年两次遇到DST问题,当人们运行的报告在时间变化之前开始并在时间变化之后结束.它在一行失败:

return TimeZoneInfo.ConvertTime(dateToConvert, DatabaseTime, UserTime);
Run Code Online (Sandbox Code Playgroud)

dateToConvert是一个DateTime被转换.DatabaseTime并且UserTime都是TimeZoneInfo对象.我没有做任何棘手或复杂的事情,但DST时间附近的DateTimes改变抛出异常.比如3/10/2013 2:02:11 AM,即使它被从中部时间中部时间"转换".

在DST时间变化附近处理DateTimes的最佳方法是什么?

c# dst datetime-conversion

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

在方向改变时调用onDestroy被调用?

我有一个运行4.4.2的股票Nexus 5(如果重要的话使用ART),我发现了一个有趣的场景.我有这个作为我的onDestroy():

@Override
protected void onDestroy() {
    super.onDestroy();
    t.setText("onDestroy");
    t.show();
}
Run Code Online (Sandbox Code Playgroud)

这是一个面向GPS的应用程序,所以我起来走动.我正在使用此问题中提到的技术来显示许多调试Toast消息.

无论如何,当我旋转我的应用程序时,会出现吐司.我知道活动被破坏并为新方向重新创建,但我怎么知道实际发生了什么?如何判断我的应用程序何时被破坏而不仅仅是被轮换?与此问题类似,我想在特定活动被销毁时注销.

android android-activity

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

编译后,在 .net exe 中操作字符串?

我知道这个问题的任何答案都可能非常棘手。我完全支持这一点,我喜欢突破一些界限,看看有什么可能,并一路学习。

我想编写一个程序来操纵已知的 exe 来更改其中的字符串。我目前有一个非常简单的 C# 程序,即已知的 exe:

using System;

namespace Target {
    class Program {

        public static String str = "TESTSTRING";

        static void Main(string[] args) {
            Console.WriteLine(str);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

编译后,在十六进制编辑器中,我看到字符串的第一个字母位于字节 1898 处。它似乎是从那里存储在 Unicode 中的。

十六进制编辑器屏幕截图显示已编译的 exe 中的字符串

一些编译器优化将字符串直接放入调用中Console.WriteLine,并且似乎正在调用一些构造函数(至少我认为是这样.cctor)。我尝试过其他相同长度的字符串,以确保我知道所有的东西是什么。我编写了一个应用程序,可以成功替换TESTSTRINGXXXXXXXXXX(请注意,它们的长度相同)并运行修改后的exe。效果很好。

但是,如果我尝试用不同长度的字符串替换该字符串,则输出 exe 将无法运行。我发现字符串之前的字节似乎包含长度。它似乎是unicode字符串的字节数+1(我不知道+1是做什么用的,也许是一个空终止符?)。但是,如果我用适当的更新值替换该长度,它仍然无法运行。字符串末尾后似乎有几个字节对于不同长度的字符串是不同的。我的猜测是,构造函数类似于,new String(...)并且那些其他字节是构造函数的其他参数(第一个参数是 achar[]byte[]前面带有它的长度),但我无法解释其他参数是什么具体是。

我知道我正在破坏通常不会发生的事情,但我很好奇这种可能性。关于 .Net exe 的结构,我有什么不知道的地方,而知道了它就可以让我做到这一点?将已编译的 EXE 中的一个字符串替换为另一个不同长度的字符串?另外,如何解释长度超过 127 的字符串?任何超过此长度的值都会影响存储字符串长度所需的字节数。

我希望能够使用任意替换字符串来完成此操作。因此,预编译特定字符串,然后仅使用该预编译字符串及其元数据修补 exe 是不可行的。我应该能够在没有反编译器/编译器的情况下做到这一点。我绝对想以编程方式执行此操作,因此 Reflector 不是一个选项。这可以可靠地完成吗?

.net executable

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

使用泛型类型构造对象?

我正在使用一个公共 RESTful API,该 API 返回具有指向更多信息的 URL 字段的对象。我想将这些字段包装在一个对象中,以指示它们指向的内容,因此我创建了一个如下对象:

class APIResource<T> {
    url: string;
}
Run Code Online (Sandbox Code Playgroud)

其中T描述了应该返回什么urlT就打字稿而言,实际上甚至没有被对象使用,但它帮助我知道我应该期待什么。我正在使用 Angular2,但请注意,我想做的并不是 Angular 特定的。我有一个 API 类,我可以在其中请求 URL 并提供将其转换为的类型:

class Person {
  name: string;
  age: number;

  constructor(obj: any) {
    // all Constructable<T> classes will
    // have a constructor that looks
    // exactly like this
    Object.assign(this, obj);
  }

  print() {
    console.log(this.name + ' is ' + this.age);
  }
}

interface Constructable<T> {
  new (obj: any): T;
}

public get<T>(url: string, type: Constructable<T>): Observable<T> …
Run Code Online (Sandbox Code Playgroud)

generics typescript

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

检查数组是否为空时 != 0 vs &gt; 0?

在过去的几年里,我已经多次争论是否要写这个问题。主要是因为我不确定这是否重要。我正在寻找最具技术性的答案,因为从表面上看我知道这并不重要。

您常用的编程语言为您提供了一些方法来使用数组上的字段(即 C# 的arr.Length)或传递数组的函数(即 Go 的len(arr))来确定数组/列表/集合的大小,并且通常使用其中之一检查数组是否为空或者其中是否有任何值的方法。您并不真正关心有多少,只关心列表是否为空。

当检查数组是否为空时,我在以下之间来回徘徊:

if (arr.Length != 0) { /* do something with the array */ }
Run Code Online (Sandbox Code Playgroud)

if (arr.Length > 0) { /* do something with the array */ }
Run Code Online (Sandbox Code Playgroud)

毫无疑问,两个操作员都可以完成这项工作。由于数组的长度不能为负(至少在我所知道的任何语言中都不能),因此它们无法有不同的行为。两者都没有带来明显的开销。

如果(一个很大的如果)这两者之间有任何区别,我想它会在一两个时钟周期的数量级上,但我对低级别事件的了解不够,没有任何理由支持其中一个而不是另一个。

出于好奇,在任何流行语言中,这些之间有哪怕一丁点的区别吗?运行速度有什么区别吗?编译时间?二进制大小?从字面上看,除了输出二进制文件中不同的操作码之外还有什么?解释型语言与编译型语言会有不同吗?

language-agnostic arrays optimization

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