我是Mac OS X的新手,我将在Snow Leopard下做一些开发工作.我启用了内置apache并在文件etc/apache2/httpd.conf中找到了以下内容:
LoadModule alias_module libexec/apache2/mod_alias.so LoadModule rewrite_module libexec/apache2/mod_rewrite.so LoadModule bonjour_module libexec/apache2/mod_bonjour.so
但我在我的系统中找不到"libexec"目录,我做错了什么?
我正在研究一个复杂的WPF应用程序,该应用程序几天就会挂起.除了GUI线程填充数据之外,还有一个线程可以将模型绑定到网格并触发INotifyPropertyChanged.PropertyChanged事件.我编写了一个脚本来将MDbg附加到挂起进程并转储线程的当前堆栈跟踪.在找到死锁原因时它会有很大帮助,但这次没有用.
正在更新模型的线程在获取时停止ReadLock:
Thread [#:8]
*0. WindowsBase.dll#0!MS.Internal.ReaderWriterLockWrapper.get_ReadLock() (source line information unavailable)
1. WindowsBase.dll#0!System.ComponentModel.PropertyChangedEventManager.OnPropertyChanged(sender=<...>, args=System.ComponentModel.PropertyChangedEventArgs) (source line information unavailable)
2. ( ... firing PropertyChanged event ... )
Run Code Online (Sandbox Code Playgroud)
GUI线程也发生了同样的事情:
Thread [#:0]
*0. WindowsBase.dll#0!MS.Internal.ReaderWriterLockWrapper.get_ReadLock() (source line information unavailable)
1. WindowsBase.dll#0!System.ComponentModel.PropertyChangedEventManager.OnPropertyChanged(sender=MyCompany.Windows.ViewModel.Window.WindowViewModel, args=System.ComponentModel.PropertyChangedEventArgs) (source line information unavailable)
2. MyCompany.Windows.Contracts.dll#0!MyCompany.Windows.ViewModel.Model.ViewModelItemBase.NotifyPropertyChanged(propertyName="IsActive") (source line information unavailable)
3. MyCompany.Windows.Contracts.dll#0!MyCompany.Windows.ViewModel.Window.WindowViewModel.set_IsActive(value=True) (source line information unavailable)
4. MyCompany.Windows.dll#0!MyCompany.Windows.ViewModel.Window.IsActiveBinding.OnWindowIsActiveChanged(sender=MyCompany.Xpf.Views.XpfRibbonShell.XpfRibbonShellView, e=System.EventArgs) (source line information unavailable)
5. WindowsBase.dll#0!MS.Internal.ComponentModel.PropertyChangeTracker.OnPropertyInvalidation(d=<N/A>, args=<N/A>) (source line information unavailable)
6. WindowsBase.dll#0!System.Windows.DependentList.InvalidateDependents(source=<N/A>, sourceArgs=<N/A>) (source line information unavailable)
7. WindowsBase.dll#0!System.Windows.DependencyObject.NotifyPropertyChange(args=<N/A>) …Run Code Online (Sandbox Code Playgroud) c# wpf multithreading propertychanged inotifypropertychanged
我将编写一个相当大/复杂的WinForm应用程序,如Paint.NET,SharpDevelop等.我认为构建这样一个应用程序最重要的事情之一就是正确构建项目以提高可维护性并控制复杂性.
那么我使用的是什么样的模式或实践呢?任何博客文章,论文,开源项目都受到欢迎.我正在尝试从SharpDevelop那里学到一些东西,但这对我来说相当巨大.
PS:我是一名经验丰富的程序员,以前的目标是web开发(asp.net,rails等).所以我知道一些设计原则以及如何在实现业务逻辑时使用它们.也许我现在真的需要一个开始使用WinForm应用程序的示例,以便我可以实现如何处理菜单,控件和其他.我已经学到了一些关于MVP模式的东西,但仍然不自信地启动一个大型/复杂的应用程序.
我正在客户端中为 MongoDB shell 编写 JavaScript 代码。如何获取正在执行的脚本文件的路径?请注意,这不是 的值pwd()。例如,我正在/my_scripts/utils.js执行/my_path:
> mongodb --nodb /my_scripts/utils.js
Run Code Online (Sandbox Code Playgroud)
sopwd()返回,但是如何获取当前执行文件(即 )的/my_path完整路径(或 值的相对路径) ?pwd()/my_scripts/utils.js
在我们的代码中,我们有自己的注入框架来启用依赖注入,例如:
public class MyClass {
[Component("ComponentName1")] // means [NotNull]
public MyType NotNullComponent{ get; set; }
[OptionalComponent("ComponentName2")] // means [CanBeNull]
public MyType CanBeNullComponent { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我们不希望再次添加[CanBeNull]或[NotNull]在任何地方添加,因为它具有[Component]与[OptionalComponent]属性重复的语义.
是否有可能让Resharper知道自定义属性的语义来帮助进行静态分析?
我们有一个包含服务器中文档的集合。每个文档就像:
{ _id: "...", Prop1: "", Prop2: "", Prop3: "", LargeField: "", ... }
Run Code Online (Sandbox Code Playgroud)
还有许多其他字段,但客户不需要。
我想将文档加载为MyDoc定义如下的类:
public class MyDoc {
public string Id { get; set; }
public string Prop1 { get; set; }
public string Prop2 { get; set; }
public string Prop3 { get; set; }
public string LargeField { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我试过了:
var client = new MongoClient(uri);
var database = client.GetDatabase("MyDatabase");
var collection = database.GetCollection<MyDocs>("MyDocs");
var allDocs = collection.Find().ToList();
Run Code Online (Sandbox Code Playgroud)
然后,它会加载所有的领域对每个文档,所以我必须把[BsonIgnoreExtraElements]上MyDoc …
It's like this (but start from 1):
Please note the number is for the row element of grid instead of row data of the source. So the number shown in the first cell of each rows should indicate the position of the current row (which starts from 1 for the first row) regardless the row data and the sorting criteria.
Update: The result is like this: https://jsfiddle.net/wp6o350z/
<script src="https://unpkg.com/ag-grid/dist/ag-grid.min.noStyle.js"></script>
<link rel="stylesheet" href="https://unpkg.com/ag-grid/dist/styles/ag-grid.css">
<link rel="stylesheet" href="https://unpkg.com/ag-grid/dist/styles/ag-theme-balham.css">
<div id="myGrid" style="height: 200px;width:500px;" class="ag-theme-balham"></div> …Run Code Online (Sandbox Code Playgroud) 我正在研究 WPF 网格的性能改进,并发现ApplyTemplate()对单元格的调用消耗了相当多的资源。每次我们创建一个单元格并将其应用ControlTemplate到它时,它会再次加载 XAML,尽管我认为这应该为同一个模板缓存。

这样可以节省一次又一次加载 XMAL 的成本吗?
另外,是否可以构建一个ControlTemplate不依赖于 XAML 的,但我们可以通过编程方式设置可视化树来提高性能?
更新:
我尝试使用由代码创建的模板并完全由FrameworkElementFactory. 分析结果表明我们没有通过这种方法获得性能提升。

似乎每次ApplyTemplate调用中的 XAML 解析成本都不高,但可视化树实例化花费了大部分时间。
我正在尝试诊断 .NET 4 应用程序的崩溃问题。上次它在用户机器上崩溃时,Windows 错误报告不会收集应用程序的小型转储。我检查了DumpFolder注册表,我可以找到旧崩溃的转储文件,但最后一个没有新的转储文件。
崩溃的事件日志说:
应用程序:MyApp.exe
框架版本:v4.0.30319
描述:由于 IP 000007FEEC0F25E8 (000007FEEC0B0000) 的 .NET 运行时出现内部错误,退出代码为 80131506,该进程被终止。
通过一些搜索看起来像是 CLR x64 中并发 GC 的一个著名错误。事件日志也不同于以前的崩溃。在之前的事件日志中,他们明确表示发生了“访问冲突”。退出代码是一样的。
我无法使用adplus或procdump获取故障转储,因为它们会显着降低性能。我想知道为什么这次 WER 没有得到 mini dump?
我在C#中编写了一个非常简单的类:
class DisposableClass : IDisposable {
public void Dispose() { }
}
static void UsingClass() { // line 31
using (var dc = new DisposableClass()) { // line 32
DoSomething(dc); // line 33
} // line 34
} // line 35
Run Code Online (Sandbox Code Playgroud)
我用WinDBG为JIT转储了本机代码:
0:000> !u 000007fe87d30120
Normal JIT generated code
SimpleConsole.Program.UsingClass()
Begin 000007fe87d30120, size 80
c:\projects\SimpleConsole\SimpleConsole\Program.cs @ 32:
>>> 000007fe`87d30120 55 push rbp
000007fe`87d30121 4883ec30 sub rsp,30h
000007fe`87d30125 488d6c2420 lea rbp,[rsp+20h]
000007fe`87d3012a 48896500 mov qword ptr [rbp],rsp
000007fe`87d3012e 48c7450800000000 mov qword …Run Code Online (Sandbox Code Playgroud) 文档说它用于限制输出对象的大小,但根据我的测试,它不是我所期望的:
0:000> !dumpheap -mt 000007fee12406a8 -max 400 -min 399
Address MT Size
000000000d1dc1f8 000007fee12406a8 936
000000000d62bed8 000007fee12406a8 1016
000000000d630d00 000007fee12406a8 984
000000000d633aa8 000007fee12406a8 984
000000000d65f368 000007fee12406a8 952
000000000d685ff0 000007fee12406a8 952
000000000d6b2150 000007fee12406a8 952
Run Code Online (Sandbox Code Playgroud)
那么如何理解-min和-max选择呢?
我只是在编写一个简单的方法来从一般流中读取数据 - 这意味着它可能是一个FileStream或NetworkStream而不知道它的长度.我重复将流读入byte []并将数据推送到另一个流或其他任何流.我的问题是,我怎么能注意到流完成了?我试图在Read方法返回0 时返回 - 这是正确的方法吗?它似乎可以读取文件,但有时会遇到从网络读取数据的问题.
我正在调查生产中的内存泄漏问题并检索内存转储.我试图抛弃累积物体的值,我遇到了WeakReference.这是我在WinDBG中得到的:
0:000> !do 000000011a306510
Name: System.WeakReference
MethodTable: 000007feeb3f9230
EEClass: 000007feeadda218
Size: 24(0x18) bytes
File: C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll
Fields:
MT Field Offset Type VT Attr Value Name
000007feeb3f4a00 400068d 8 System.IntPtr 1 instance 343620e0 m_handle
0:000> !do 343620e0
<Note: this object has an invalid CLASS field>
Invalid object
Run Code Online (Sandbox Code Playgroud)
我们可以发现我们不能将该m_handle值用作对象地址.我检查了代码,WeakReference它是完全extern代码.
我的问题是,我们如何使用WinDBG/SOS检查它的价值?另外,我正在为ClrMD的问题编写ad-hoc分析器,那么我应该如何检查对象的对象引用WeakReference呢?