使用AllocConsole和目标体系结构x86时没有控制台输出

我有一个WinForms项目,如果用户想要一个调试控制台,我会分配一个带AllocConsole()的控制台。 所有控制台输出都正常工作,目标架构设置为“任何CPU”,但当我将其更改为“x86”时,它不会输出任何内容( Console.Read()仍然按预期工作)。 如果我直接打开EXE,则输出有效。 看起来Visual Studio将其重定向到它自己的“输出”窗口。 我也尝试了这个答案,但它没有用,我也试过Console.SetOut(GetStdHandle(-11)) ,但也Console.SetOut(GetStdHandle(-11)) 。 将目标体系结构设置为“任何CPU”对我来说是没有选择的。 所以这是我的两个问题: 为什么只有当目标体系结构设置为x86时才会出现这种情况? 在Visual Studio中运行时如何输出到我的控制台?

良好的GetHashCode()覆盖了尊重订单的Foo对象列表

EnumerableObject : IEnumerable 包装List 如果EnumerableObject a.SequenceEquals( EnumerableObject b) ,那么它们是相等的。 因此,必须实现GetHashCode 。 问题是XORing列表中的每个元素将返回具有所有且仅相同元素的任何列表的相同哈希码,而不管顺序如何。 就工作而言,这是好的,但会导致许多冲突,这将减慢检索速度等。 对于依赖于顺序的对象列表,什么是好的,快速的GetHashCode方法?

Interlocked.CompareExchange是否使用内存屏障?

我正在阅读Joe Duffy关于Volatile读取和写入以及及时性的post,我正在尝试理解post中最后一个代码示例: while (Interlocked.CompareExchange(ref m_state, 1, 0) != 0) ; m_state = 0; while (Interlocked.CompareExchange(ref m_state, 1, 0) != 0) ; m_state = 0; … 执行第二次CMPXCHG操作时,它是否使用内存屏障来确保m_state的值确实是写入它的最新值? 或者它只是使用已存储在处理器缓存中的某些值? (假设m_state未声明为volatile)。 如果我理解正确,如果CMPXCHG不会使用内存屏障,那么整个锁获取过程将不公平,因为第一个获取锁的线程很可能是将获得所有锁的线程。 以下锁 。 我理解正确,还是我错过了什么? 编辑 :主要问题实际上,在尝试读取m_state的值之前,调用CompareExchange是否会导致内存障碍。 因此,当尝试再次调用CompareExchange时,是否所有线程都可以看到赋值0。

XAML GridView ItemTemplate无法绑定到控件

我有一个带有ItemTemplate的GridView ,它包含一个Custom控件: 这是我的自定义用户控件: 它的代码背后: public sealed partial class HabitacionControl : UserControl { public HabitacionControl() { this.InitializeComponent(); } public MyClass Ubicacion { get { return (MyClass)GetValue(UbicacionProperty); } set { SetValue(UbicacionProperty, value); } } // Using a DependencyProperty as the backing store for Ubicacion. This enables animation, styling, binding, etc… public static readonly DependencyProperty UbicacionProperty = DependencyProperty.Register(“Ubicacion”, […]

.NET上的双精度问题

我有一个简单的C#函数: public static double Floor(double value, double step) { return Math.Floor(value / step) * step; } 计算更高的数字,低于或等于“值”,即“步数”的倍数。 但它缺乏精确性,如下面的测试所示: [TestMethod()] public void FloorTest() { int decimals = 6; double value = 5F; double step = 2F; double expected = 4F; double actual = Class.Floor(value, step); Assert.AreEqual(expected, actual); value = -11.5F; step = 1.1F; expected = -12.1F; […]

如何使脚本以统一的简单方式等待/睡眠

如何在TextUI.text = ….之间TextUI.text = ….一个sleep函数,在每个短语之间等待3秒? public Text GuessUI; public Text TextUI; […truncated…] TextUI.text = “Welcome to Number Wizard!”; TextUI.text = (“The highest number you can pick is ” + max); TextUI.text = (“The lowest number you can pick is ” + min); 我已经尝试了各种各样的东西,但没有奏效,这样: TextUI.text = “Welcome to Number Wizard!”; yield WaitForSeconds (3); TextUI.text = (“The […]

JSON.NET Parser *似乎*是双重序列化我的对象

我的问题是: 这是从我的WebAPI控制器发回的响应。 “[ [ {\”id\”:\”identifier\”}, {\”name\”:\”foobar\”} ] ]” 请注意,响应包含在引号中,并且所有嵌入的引用都被转义。 这显然是个问题。 我可以为JSON.NET Serializer提供任何设置以防止这种情况发生吗? 编辑 正如pswg在他的回答中猜到的那样,我正在使用JSON.NET JsonConvert.SerializeObject(instance) 执行我的序列化。 我这样做是因为当我构建我的自定义转换器时,我将它们包含在我的WepApiConfig中的JsonConvert.DefaultSettings中(我显然认为这不是问题) 我之前尝试将我的HttpGets的返回类型交换为“我的对象类型”,响应是我对象的ToString()方法的json表示…这让我知道序列化没有通过我的转换器。 将我的HttpGets的返回类型从字符串更改为“我的对象类型”并将这些转换器直接插入到WebAPi的默认HttpConfiguration中就可以了。 config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new FooConverter()); config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new BarConverter()); 十分简单。

计算带宽

有没有办法我可以通过网络计算exe /应用程序的带宽(发送和接收的数据包)? 已经陷入了IPGlobalProperties , 和其他类….我想要一个应用程序收到的数据包发送…我已经检查了http://netstatagent.com/我需要类似的东西…… .net中有什么可以帮助我吗? 我的应用程序连接到Web服务以发送一些图像文件…并且还接收文件…

由于其保护级别而无法访问

我无法弄清楚这一点。 问题是距离,俱乐部,俱乐部,清洁俱乐部,洞,分数和标准都说因保护水平而无法进入,我不知道为什么因为我认为我做的一切都是正确的。 namespace homeworkchap8 { public class Clubs { protected string club; protected string distance; protected string cleanclub; protected string scores; protected string par; protected string hole; public string myclub { get { return club; } set {club = value; } } public string mydistance { get { return distance; } set { distance = […]

在c#中写入图像上的文本

我有以下问题。 我想在位图图像中制作一些图形,如债券forms 我可以用图像写一个文字 但我会在不同的位置写更多的文字 Bitmap a = new Bitmap(@”path\picture.bmp”); using(Graphics g = Graphics.FromImage(a)) { g.DrawString(….); // requires font, brush etc } 如何编写文本并保存并在保存的图像中写入另一个文本