Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 何时加载Generic.xaml-styles?_C#_Wpf_Xaml_Styles - Fatal编程技术网

C# 何时加载Generic.xaml-styles?

C# 何时加载Generic.xaml-styles?,c#,wpf,xaml,styles,C#,Wpf,Xaml,Styles,我想知道在应用程序启动后,存储在Generic.xaml文件中的样式何时被加载,在加载完成后,这种情况发生的频率有多高。我的意思是,它们是只加载一次还是每次实例化控件的新对象时加载一次?此外,样式-资源真正从资源文件中读取的频率有多高?I.我的意思是,它们是只加载一次还是每次实例化控件的新对象时加载一次 样式,资源字典仅在程序开始时加载一次。引自: 项目下“Themes”目录下的每个资源字典都将“编译”(此编译过程由msbuild和自定义生成任务完成)到BAML表示形式中,并且这些BAML文件将

我想知道在应用程序启动后,存储在
Generic.xaml
文件中的
样式何时被加载,在加载完成后,这种情况发生的频率有多高。我的意思是,它们是只加载一次还是每次实例化
控件的新对象时加载一次?此外,
样式
-资源真正从资源文件中读取的频率有多高?

I.
我的意思是,它们是只加载一次还是每次实例化控件的新对象时加载一次

样式
资源字典
仅在程序开始时加载一次。引自:

项目下“Themes”目录下的每个资源字典都将“编译”(此编译过程由msbuild和自定义生成任务完成)到BAML表示形式中,并且这些BAML文件将被视为最终编译的程序集的资源文件

主题程序集的另一个好处是,您可以使用主题程序集定义“仅资源”或“共享资源”程序集,因为主题程序集中的资源字典将只加载一次,这比ResourceDictionary.MergedDictories机制带来的好处多得多

II.
此外,样式资源真正从资源文件中读取的频率有多高

每个
样式
资源字典
都被编译成BAML代码,这些资源是程序集的一部分。JIT编译器(在开始时)将所有程序集加载到内存中一次,进一步的工作将在内存中的应用程序中进行。我的意思是,我不认为应用程序每次读取文件样式时,根据JIT编译器的逻辑,所有内容都以元数据的形式存储在内存中,后续处理必须在内存中进行

关于JIT编译器的工作和.NET的工作,您可以阅读一篇精彩的文章
Jeffrey Richter的

@user1574054:请查看我的编辑,我希望它对您有用。