小编Ori*_*rds的帖子

你使用branches/tags/trunk约定吗?

您是否始终遵循将分支,标签和主干目录放在Subversion存储库顶层的惯例?最近,我已经停止了打扰,并没有发生任何不好的事情(还)!

如果需要创建目录树,应该可以移动目录树.我以后会惹麻烦吗?

svn

7
推荐指数
1
解决办法
2523
查看次数

WPF InitializeComponent性能问题

我有一个WPF应用程序(.NET 4),它有一个主窗口,在主窗口内部显示许多较小的窗口UserControls.用户执行的各种动作导致UserControls显示的动作被具有不同数据的不同其他控件替换.

但是,在切换这些控件时,我遇到了性能问题.在加载控件时,WPF调度程序线程转到100%CPU.在较旧的计算机上,或者控件数量较多时,这可能会导致应用程序锁定长达30秒!

分析表明几乎所有这些CPU时间花在调用InitializeComponent所有不同的各种方法上UserControls- 没有一个控件看起来比其他任何方法差得多,它们似乎都需要0.2到0.5秒(在我的开发机器上快速处理器和良好的图形卡).

据我所知,InitializeComponentWPF实际上将已编译的xaml加载到内存中.

我在这里做什么都不知所措.我想在后台线程上预先初始化东西,但是必须在调度程序线程上创建和使用所有WPF控件,所以我认为这不可行.

否则它看起来像我唯一的选择是删除我的所有xaml?

任何帮助将不胜感激

c# wpf performance

7
推荐指数
1
解决办法
4829
查看次数

异步等待异常捕获 - 我在哪个线程?

我想做这样的事情:

public async Task<int> DoWork(int parameter) {
    try {
        await OperationThatMayCompleteSynchronously(parameter);
    } catch(Exception) e { 
        if(completedSynchronously)
           doSyncThing();
        else
           doAsyncThing();
    }
}
Run Code Online (Sandbox Code Playgroud)

注意:我正在线程池上运行任务,因此没有异步上下文.

我希望能够分辨出立即抛出的异常和我仍然在调用线程上的区别(例如parameter,导致函数中止无效),并且当异步任务完成时抛出异常,并且我' m在其他一些随机回调线程上(例如网络故障)

如果我不使用await,我可以弄清楚如何实现这一点,并且只是ContinueWith在异步操作中使用,但它是否可以使用await

c# exception-handling async-await

7
推荐指数
1
解决办法
193
查看次数

HTML选择标记为黑色背景 - 下拉三角形在Firefox 3中不可见

我有以下HTML(注意CSS使背景变黑并且文本变白)

<html>
  <select id="opts" style="background-color: black; color: white;">
    <option>first</option>
    <option>second</option>
  </select> 
</html>
Run Code Online (Sandbox Code Playgroud)

Safari非常智能,可以使文本右侧显示的小三角形与前景文本的颜色相同.

其他浏览器基本上忽略了CSS,所以它们也很好.

但Firefox 3会应用背景颜色,但会将三角形留下黑色,因此您无法看到它,就像这样

例

我无法找到解决这个问题的方法 - 任何人都可以帮忙吗?有没有-moz-select-triangle-color像这样模糊不清的东西?

html css firefox html-select drop-down-menu

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

Qt应用程序失败了

我正在尝试将Qt应用程序与其库链接,并且链接器(MinGW)会喷出数百行,如下所示,我不确定如何继续.

 cpp: undefined reference to `_Unwind_SjLj_Register'
 c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x29d):qcoreapplication_win.
 cpp: undefined reference to `_Unwind_SjLj_Unregister'
 c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x38c):qcoreapplication_win.
 cpp: undefined reference to `_Unwind_SjLj_Resume'
 c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x4ce):qcoreapplication_win.
 cpp: undefined reference to `_Unwind_SjLj_Register'
 c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x53e):qcoreapplication_win.
 cpp: undefined reference to `_Unwind_SjLj_Unregister'
 c:/qt/lib/libQtCore.a(qcoreapplication_win.o)(.text+0x635):qcoreapplication_win.
 cpp: undefined reference to `_Unwind_SjLj_Resume'

qt mingw g++ reference undefined

6
推荐指数
2
解决办法
2273
查看次数

同步2个WPF DataGrids的滚动位置

我试图同步 2 WPF DataGrid控件的水平滚动位置.

我正在订阅第一个DataGrid 的ScrollChanged事件:

<toolkit:DataGrid x:Name="SourceGrid" ScrollViewer.ScrollChanged="SourceGrid_ScrollChanged">
Run Code Online (Sandbox Code Playgroud)

我有第二个DataGrid:

<toolkit:DataGrid x:Name="TargetGrid">
Run Code Online (Sandbox Code Playgroud)

在我尝试使用的事件处理程序中IScrollInfo.SetHorizontalOffset,但是唉,DataGrid没有公开IScrollInfo:

private void SourceGrid_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
    ((IScrollInfo)TargetGrid).SetHorizontalOffset(e.HorizontalOffset);
    // cast to IScrollInfo fails
}
Run Code Online (Sandbox Code Playgroud)

还有另一种方法来实现这一目标吗?或者TargetGrid上是否有另一个元素暴露了IScrollInfo实现滚动位置同步所必需的元素?

顺便说一下,我使用的是冻结列,所以我不能用ScrollViewers包装两个DataGrid控件.

wpf datagrid scroll

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

在.NET 3.5中使用System.Reactive(在发货产品中)

现在微软已经在devlabs上发布了适当版本的Rx框架,这个问题已经不再适用了


原始问题

我已经下载了Silverlight 3工具包并重新定义了System.Reactive.dll,以便在.NET 3.5 CLR上工作,我真的很享受使用它.

我想知道的是,我可以发货吗?

我想我可以在MS-PL许可下发货,但同时感觉我不应该,因为我不得不重新设置dll,因为我还没有看到任何微软关于发布反应框架的官方消息.

另一种选择是要么IObservable直到.NET 4.0,或者编写我自己的系统ripoff版本.我可能最终会编写一个ripoff版本,即使这会浪费一些时间.

有没有其他人想过这个问题,是否有其他人使用/运送该DLL?

c# silverlight licensing reactive-programming

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

ICollection与ICollection <T> - ICollection <T> .Count与ICollection.Count之间的歧义

注意:这与其他问题类似,但不完全相同

我已经实现了一个IBusinessCollection界面.它既来自两者ICollection<T>,又来自旧的非泛型ICollection.我更喜欢抛弃旧的破坏ICollection,但我正在使用带有CollectionView的WPF数据绑定,它希望我实现旧的非泛型IList:-(

无论如何,接口看起来像这样:

public interface IBusinessCollection<T> : ICollection<T>, ICollection
{ }

public interface ICollection<T>
{ int Count { get; } }

public interface ICollection
{ int Count { get; } }
Run Code Online (Sandbox Code Playgroud)

由于使用依赖注入,我IBusinessCollection<T>使用它们的接口传递类型的对象,而不是具体的类型,所以我有这样的东西:

internal class AnonymousCollection : IBusinessCollection<string>
{ 
    public int Count { get { return 5; } }
}

public class Factory
{
    public static IBusinessCollection<string> Get()
    { return new AnonymousCollection(); }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试调用此代码时,出现错误,如下所示: …

c# generics icollection

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

Swift:如何禁用函数的整数上溢/下溢陷阱

我正在将一些旧的C代码导入到一个快速项目中,并将其移植到纯粹的快速代码中.

其中一些做"加密",其中它做了类似的事情

let a = UInt8(x) // e.g. 30
let b = a - 237
Run Code Online (Sandbox Code Playgroud)

在C中,这只是下溢和环绕,这对于这个特定的功能来说很好.

在swift中,这会触发fatalError并使用EXC_BAD_INSTRUCTION终止我的程序,因为默认情况下swift用于捕获整数上溢/下溢.

我知道我可以通过使用-Ofast进行编译来在整个项目级别关闭此检查,但我真的想关闭这一行代码的溢出检查(或者可能只是特定的函数本身).

注意:我特别想保留C函数的行为,而不仅仅是将事物提升到Int32或Int64

这个特殊的术语似乎很难谷歌.


更新:答案是溢出运算符,它们是

  • &- 减法
  • &+ 另外
  • &* 为了倍增

我在之前的搜索中找不到它们.哎呀

integer-overflow swift

6
推荐指数
2
解决办法
1686
查看次数

swift 4:模式匹配元组对象元组(元组模式不能匹配非元组类型的值)

我有一个带有几个字段的自定义结构,我想在swift switch语句中对它进行模式匹配,这样我就可以通过将一个字段与正则表达式进行比较来自定义匹配.

例如,鉴于这种结构:

struct MyStruct {
    let header: String
    let text: String
}
Run Code Online (Sandbox Code Playgroud)

我想像这样模式匹配:

switch(someInstance) {
    case ("h1", "[a-z]+"): ...
    case ("h1", "0-9+"): ...
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用模式匹配函数使其工作如下:

func ~=(pattern: (String, String), value: MyStruct) -> Bool {
    return value.header == pattern.0 && value.text.range(of: pattern.1, options: .regularExpression) != nil
}
Run Code Online (Sandbox Code Playgroud)

但是Xcode(9)无法使用此错误进行编译:

元组模式不能匹配非元组类型'MyStruct'的值

我能够达到的最好成绩如下:

struct MatchMyStruct {
    let header: String
    let regex: String

    init(_ header: NSString, _ regex: String) {
        self.header = header
        self.regex = regex
    }
}

func ~=(pattern: MatchMyStruct, …
Run Code Online (Sandbox Code Playgroud)

pattern-matching swift swift4

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