问题列表 - 第19329页

强制程序在重定向时刷新其标准输出

我有一个封闭的源程序,打印输出到标准输出.我需要解析输出.所以我使用dup2将输出重定向到fifo(我可以在父进程中读取,分叉和执行二进制文件),然后执行程序.问题是文件中的fprintf调用变为缓冲,因为它现在正在写入文件.

我试着在调用exec之前在stdout上用_IONBF调用setvbuf.但问题仍然存在.

为什么setvbuf在我的情况下没有帮助?

我如何强制输出刷新?

c linux stdio fifo

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

数据绑定和控件

我们需要在WinForms应用程序中的控件上执行以下操作。

public class BindableDataItem
{
   public bool Visible {get; set; }
   public bool Enabled {get;set;}

}
Run Code Online (Sandbox Code Playgroud)

现在我们想将BindableDataItem绑定到文本框。

这里是绑定关联。

TextBox.Enabled <==> BindableDataItem.Enabled

TextBox.Visible <==> BindableDataItem.Visible

现在,一个BindableDataItem对象可以与许多具有不同类型的控件关联。

通过调用(BindableDataItem)obj.Enabled = false,应禁用附加到BindableDataItem对象的所有控件。

任何帮助将不胜感激。

.net c# data-binding winforms

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

链接非特定版本的程序集?

我在应用程序中遇到这样的错误,

无法加载文件或程序集'MySql.Data,Version = 6.2.2.0,Culture = neutral,PublicKeyToken = c5687fc889699c44d'或其依赖项之一.定位的程序集的清单防御与程序集引用不匹配.

这是预期的,因为此安装恰好安装了.dll的先前版本.

我可以告诉(在Vs2008中)链接到这个MySQL.data.dll而不关心它的版本吗?项目中的MYSQL.data.dll引用有一个名为"特定版本"的属性,虽然将其设置为false不会产生任何差异.

如果这个.dll与所需的二进制不兼容,我很清楚这意味着什么.

.net assemblies

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

使用yield return的IEnumerable和Recursion

我有一个IEnumerable<T>方法,我用来在WebForms页面中找到控件.

该方法是递归的,当返回yield return递归调用的值时,我遇到一些问题,返回我想要的类型.

我的代码如下:

    public static IEnumerable<Control> 
                               GetDeepControlsByType<T>(this Control control)
    {
        foreach(Control c in control.Controls)
        {
            if (c is T)
            {
                yield return c;
            }

            if(c.Controls.Count > 0)
            {
                yield return c.GetDeepControlsByType<T>();
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

这当前抛出"无法转换表达式类型"错误.但是IEnumerable<Object>,如果此方法返回类型,则代码构建,但输出中返回错误的类型.

有没有使用yield return同时也使用递归的方法?

c# generics ienumerable yield

298
推荐指数
7
解决办法
7万
查看次数

任何Haskell在线竞赛或问题集?

您是否知道在Haskell中接受解决方案的任何在线问题集或竞赛?我只知道El Judge,但遗憾的是它与ghc有一些问题,因此任何Haskell问题都会因"内存限制"分辨率而被拒绝.

haskell

24
推荐指数
5
解决办法
4151
查看次数

你如何在Sinatra进行测试?

我不知道如何测试我的Sinatra应用程序.我跑吧

红宝石

这似乎不起作用.那里的所有文件只讨论如何编写文件的内容,而不是如何让它运行.

谢谢

ruby testing sinatra

17
推荐指数
2
解决办法
5184
查看次数

如何在Objective-C中测试对象是哪个类?

如何在Objective-C中测试对象是否是特定类的实例?假设我想看看对象a是b类的实例,还是类c,我该怎么做呢?

objective-c

207
推荐指数
2
解决办法
14万
查看次数

groovy:如何访问属性文件?

我有一个Groovy应用程序,我想以编程方式访问message.properties中定义的属性.

作为测试我尝试了以下内容:

println "capacity.created: ${messages.properties['capacity.created']}"
Run Code Online (Sandbox Code Playgroud)

但它不起作用(抛出异常).

欢迎任何帮助

路易斯

multilingual grails groovy properties internationalization

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

Control.Invoke 在隐藏的 ShowDialog 中“卡住”

(我有解决这个问题的方法,但这不是我第一次被咬,所以我试图确切地了解发生了什么。)

  • 从我的申请中,我得到了ShowDialog一张表格。
  • 表单上有一个按钮,单击该按钮时会调用另一个(非 GUI)线程上的代码。
  • 非 GUI 线程通过 Control.Invoke发回状态( Pushedthen )Released
  • 当表单看到 时Pushed,它会调用form.Hide()
  • 当表单看到 时Released,它会更改按钮的外观。

发生的情况是,有时(但并非每次)非 Gui 线程在尝试发送Released. 无一例外,Gui 继续“工作”,但无论在哪个方向,都不可能与非 Gui 线程进行进一步的通信。

线程的(简化的)调用堆栈如下所示:

System.Threading.WaitHandle.WaitOne()
(...)
System.Windows.Forms.Control.WaitForWaitHandle()
(...)
System.Windows.Forms.Control.Invoke()
(...)
GuiCode.OnStatusChanged()
(...)
NonGuiCode.SetStatus()
Run Code Online (Sandbox Code Playgroud)

ShowDialog如果我替换为,问题就会消失,但是 - 有趣的是 - 它会变得更好(发生的频率较低),但如果我注释掉执行onShow的代码,问题不会完全消失。HidePushed

更新

感谢nobugz,我发现了死锁(我以前只在数据库中遇到过它)!显然,用 Control.BeginInvoke 替换 Control.Invoke 可以解决此问题(状态事件有时仍然“卡住”,但它不会阻止所有后续通信)。

.net c# multithreading invoke

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

C#inherit(kind off)/在单个类中使用多个类的属性

假设我有2个这样的类:

public class A
{
    public string P1{ get; set; }
    public string P2{ get; set; }
}

public class B
{
    public string P3{ get; set; }
    public string P4{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我需要一个这样的课:

public class C
{
    public string P1{ get; set; }
    public string P2{ get; set; }
    public string P3{ get; set; }
    public string P4{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)

C类可以使用A类和B类而不是重新声明所有属性吗?
(我需要这个DTO)

c#

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