WPF遮蔽层的实现
在一些项目中,难免会有耗时的加载,如果加载时没有提示,给人一种假死的感觉,很不友好,那么现在福利来啦,WPF版的模态窗体,先上效果图
实际效果指针是转动的,话不多说,一大批干货来袭
XMAL的代码
Window x:Class="ZhiHeng.IntelligentExpress.WpfUI.Views.CoverForm" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" Title="CoverForm" x:Name="Window" Style="{StaticResource WindowsStyle}" Opacity="0.5"> <Window.Resources> <Storyboard x:Key="Storyboard1"> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" RepeatBehavior="Forever" Storyboard.TargetName="ellipse" Storyboard.TargetProperty="(UIElement.Opacity)"> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.Opacity)" RepeatBehavior="Forever" Storyboard.TargetName="ellipse1"> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.Opacity)" RepeatBehavior="Forever" Storyboard.TargetName="ellipse2"> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.Opacity)" RepeatBehavior="Forever" Storyboard.TargetName="ellipse3"> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.Opacity)" RepeatBehavior="Forever" Storyboard.TargetName="ellipse4"> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.Opacity)" RepeatBehavior="Forever" Storyboard.TargetName="ellipse5"> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.Opacity)" RepeatBehavior="Forever" Storyboard.TargetName="ellipse6"> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.Opacity)" RepeatBehavior="Forever" Storyboard.TargetName="ellipse7"> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.Opacity)" RepeatBehavior="Forever" Storyboard.TargetName="ellipse8"> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.Opacity)" RepeatBehavior="Forever" Storyboard.TargetName="ellipse9"> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.Opacity)" RepeatBehavior="Forever" Storyboard.TargetName="ellipse10"> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.Opacity)" RepeatBehavior="Forever" Storyboard.TargetName="ellipse11"> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.Opacity)" RepeatBehavior="Forever" Storyboard.TargetName="ellipse12"> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.Opacity)" RepeatBehavior="Forever" Storyboard.TargetName="ellipse13"> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.Opacity)" RepeatBehavior="Forever" Storyboard.TargetName="ellipse14"> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.Opacity)" RepeatBehavior="Forever" Storyboard.TargetName="ellipse15"> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.Opacity)" RepeatBehavior="Forever" Storyboard.TargetName="ellipse16"> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.Opacity)" RepeatBehavior="Forever" Storyboard.TargetName="ellipse17"> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" RepeatBehavior="Forever" Storyboard.TargetName="border" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)"> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> </DoubleAnimationUsingKeyFrames> <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" RepeatBehavior="Forever" Storyboard.TargetName="border1" Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)"> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> <SplineDoubleKeyFrame KeyTime=" /> </DoubleAnimationUsingKeyFrames> </Storyboard> </Window.Resources> <Window.Triggers> <EventTrigger RoutedEvent="FrameworkElement.Loaded"> <BeginStoryboard Storyboard="{StaticResource Storyboard1}" /> </EventTrigger> </Window.Triggers> <Grid x:Name="LayoutRoot"> <Viewbox Width="> <Grid HorizontalAlignment=" VerticalAlignment="Center" Width="3.333" Height="3.333" Visibility="Visible"> <Ellipse RenderTransformOrigin="0.468,3.443" x:Name="ellipse" Fill="Black" Stroke="{x:Null}" /> <Ellipse RenderTransformOrigin="0.468,3.443" Fill="Black" Stroke="{x:Null}" x:Name="ellipse0" > <Ellipse.RenderTransform> <TransformGroup> <ScaleTransform ScaleX=" /> <SkewTransform AngleX=" /> <RotateTransform Angle=" /> <TranslateTransform X=" /> </TransformGroup> </Ellipse.RenderTransform> </Ellipse> <Ellipse RenderTransformOrigin="0.468,3.443" Fill="Black" Stroke="{x:Null}" x:Name="ellipse1" > <Ellipse.RenderTransform> <TransformGroup> <ScaleTransform ScaleX=" /> <SkewTransform AngleX=" /> <RotateTransform Angle=" /> <TranslateTransform X=" /> </TransformGroup> </Ellipse.RenderTransform> </Ellipse> <Ellipse RenderTransformOrigin="0.468,3.443" Fill="Black" Stroke="{x:Null}" x:Name="ellipse2" > <Ellipse.RenderTransform> <TransformGroup> <ScaleTransform ScaleX=" /> <SkewTransform AngleX=" /> <RotateTransform Angle=" /> <TranslateTransform X=" /> </TransformGroup> </Ellipse.RenderTransform> </Ellipse> <Ellipse RenderTransformOrigin="0.468,3.443" Fill="Black" Stroke="{x:Null}" x:Name="ellipse3"> <Ellipse.RenderTransform> <TransformGroup> <ScaleTransform ScaleX=" /> <SkewTransform AngleX=" /> <RotateTransform Angle=" /> <TranslateTransform X=" /> </TransformGroup> </Ellipse.RenderTransform> </Ellipse> <Ellipse RenderTransformOrigin="0.468,3.443" Fill="Black" Stroke="{x:Null}" x:Name="ellipse4"> <Ellipse.RenderTransform> <TransformGroup> <ScaleTransform ScaleX=" /> <SkewTransform AngleX=" /> <RotateTransform Angle=" /> <TranslateTransform X=" /> </TransformGroup> </Ellipse.RenderTransform> </Ellipse> <Ellipse RenderTransformOrigin="0.468,3.443" Fill="Black" Stroke="{x:Null}" x:Name="ellipse5"> <Ellipse.RenderTransform> <TransformGroup> <ScaleTransform ScaleX=" /> <SkewTransform AngleX=" /> <RotateTransform Angle=" /> <TranslateTransform X=" /> </TransformGroup> </Ellipse.RenderTransform> </Ellipse> <Ellipse RenderTransformOrigin="0.468,3.443" Fill="Black" Stroke="{x:Null}" x:Name="ellipse6" > <Ellipse.RenderTransform> <TransformGroup> <ScaleTransform ScaleX=" /> <SkewTransform AngleX=" /> <RotateTransform Angle=" /> <TranslateTransform X=" /> </TransformGroup> </Ellipse.RenderTransform> </Ellipse> <Ellipse RenderTransformOrigin="0.468,3.443" Fill="Black" Stroke="{x:Null}" x:Name="ellipse7" > <Ellipse.RenderTransform> <TransformGroup> <ScaleTransform ScaleX=" /> <SkewTransform AngleX=" /> <RotateTransform Angle=" /> <TranslateTransform X=" /> </TransformGroup> </Ellipse.RenderTransform> </Ellipse> <Ellipse RenderTransformOrigin="0.468,3.443" Fill="Black" Stroke="{x:Null}" x:Name="ellipse8" > <Ellipse.RenderTransform> <TransformGroup> <ScaleTransform ScaleX=" /> <SkewTransform AngleX=" /> <RotateTransform Angle=" /> <TranslateTransform X=" /> </TransformGroup> </Ellipse.RenderTransform> </Ellipse> <Ellipse RenderTransformOrigin="0.468,3.443" Fill="Black" Stroke="{x:Null}" x:Name="ellipse9" > <Ellipse.RenderTransform> <TransformGroup> <ScaleTransform ScaleX=" /> <SkewTransform AngleX=" /> <RotateTransform Angle=" /> <TranslateTransform X=" /> </TransformGroup> </Ellipse.RenderTransform> </Ellipse> <Ellipse RenderTransformOrigin="0.468,3.443" Fill="Black" Stroke="{x:Null}" x:Name="ellipse10" > <Ellipse.RenderTransform> <TransformGroup> <ScaleTransform ScaleX=" /> <SkewTransform AngleX=" /> <RotateTransform Angle=" /> <TranslateTransform X=" /> </TransformGroup> </Ellipse.RenderTransform> </Ellipse> <Ellipse RenderTransformOrigin="0.468,3.443" Fill="Black" Stroke="{x:Null}" x:Name="ellipse11" > <Ellipse.RenderTransform> <TransformGroup> <ScaleTransform ScaleX=" /> <SkewTransform AngleX=" /> <RotateTransform Angle=" /> <TranslateTransform X=" /> </TransformGroup> </Ellipse.RenderTransform> </Ellipse> <Ellipse RenderTransformOrigin="0.468,3.443" Fill="Black" Stroke="{x:Null}" x:Name="ellipse12" > <Ellipse.RenderTransform> <TransformGroup> <ScaleTransform ScaleX=" /> <SkewTransform AngleX=" /> <RotateTransform Angle=" /> <TranslateTransform X=" /> </TransformGroup> </Ellipse.RenderTransform> </Ellipse> <Ellipse RenderTransformOrigin="0.468,3.443" Fill="Black" Stroke="{x:Null}" x:Name="ellipse13" > <Ellipse.RenderTransform> <TransformGroup> <ScaleTransform ScaleX=" /> <SkewTransform AngleX=" /> <RotateTransform Angle=" /> <TranslateTransform X=" /> </TransformGroup> </Ellipse.RenderTransform> </Ellipse> <Ellipse RenderTransformOrigin="0.468,3.443" Fill="Black" Stroke="{x:Null}" x:Name="ellipse14" > <Ellipse.RenderTransform> <TransformGroup> <ScaleTransform ScaleX=" /> <SkewTransform AngleX=" /> <RotateTransform Angle=" /> <TranslateTransform X=" /> </TransformGroup> </Ellipse.RenderTransform> </Ellipse> <Ellipse RenderTransformOrigin="0.468,3.443" Fill="Black" Stroke="{x:Null}" x:Name="ellipse15" > <Ellipse.RenderTransform> <TransformGroup> <ScaleTransform ScaleX=" /> <SkewTransform AngleX=" /> <RotateTransform Angle=" /> <TranslateTransform X=" /> </TransformGroup> </Ellipse.RenderTransform> </Ellipse> <Ellipse RenderTransformOrigin="0.468,3.443" Fill="Black" Stroke="{x:Null}" x:Name="ellipse16" > <Ellipse.RenderTransform> <TransformGroup> <ScaleTransform ScaleX=" /> <SkewTransform AngleX=" /> <RotateTransform Angle=" /> <TranslateTransform X=" /> </TransformGroup> </Ellipse.RenderTransform> </Ellipse> <Ellipse RenderTransformOrigin="0.468,3.443" Fill="Black" Stroke="{x:Null}" x:Name="ellipse17" > <Ellipse.RenderTransform> <TransformGroup> <ScaleTransform ScaleX=" /> <SkewTransform AngleX=" /> <RotateTransform Angle=" /> <TranslateTransform X=" /> </TransformGroup> </Ellipse.RenderTransform> </Ellipse> <Ellipse RenderTransformOrigin="0.5,0.499" x:Name="ellipse_Copy" Fill="Black" Stroke="{x:Null}" Margin="-0.012,0,0.001,-9.67" VerticalAlignment="Bottom" Height="3.344"> <Ellipse.RenderTransform> <TransformGroup> <ScaleTransform ScaleX=" /> <SkewTransform AngleX=" /> <RotateTransform Angle=" /> <TranslateTransform X=" /> </TransformGroup> </Ellipse.RenderTransform> </Ellipse> <Border RenderTransformOrigin="0.492,1.006" Margin="1.081,0,1.086,-8.056" x:Name="border" VerticalAlignment="Bottom" Height="8.622" Background="Black" CornerRadius="1,1,0,0"> <Border.RenderTransform> <TransformGroup> <ScaleTransform ScaleX=" /> <SkewTransform AngleX=" /> <RotateTransform Angle=" /> <TranslateTransform X=" /> </TransformGroup> </Border.RenderTransform> </Border> <Border Height="4.994" Background="Black" CornerRadius="1,1,0,0" RenderTransformOrigin="0.496,1.001" Margin="0.705,0,0.714,-8.058" x:Name="border1" VerticalAlignment="Bottom"> <Border.RenderTransform> <TransformGroup> <ScaleTransform ScaleX=" /> <SkewTransform AngleX=" /> <RotateTransform Angle=" /> <TranslateTransform X=" /> </TransformGroup> </Border.RenderTransform> </Border> </Grid> </Viewbox> <Label Content=" Foreground="Orange" HorizontalAlignment="Left" Margin="396,668,0,0" VerticalAlignment="Top" RenderTransformOrigin="0.274,0.462"/> </Grid> </Window>
后台C#代码
public partial class CoverForm : Window { public CoverForm(Action workAction) { InitializeComponent(); this.workAction = workAction; System.Threading.Thread t = new System.Threading.Thread(ExecWorkAction); t.IsBackground = true; t.Start(); } private Action workAction = null; private void ExecWorkAction() { try { var workTask = new Task(workAction); workTask.Start(); Task.WaitAll(workTask); } finally { this.Dispatcher.Invoke(new Action(() => { this.Close(); })); } } }
调用的代码
new CoverForm(() => {耗时的代码 }); }).Show();
有需要的尽管拿去吧,要问我是谁,请叫我是雷锋。
WPF遮蔽层的实现的更多相关文章
- WPF 蒙层罩,正在加载
参考园子里的一篇文章,比较好用.可以直接用,可以自己改. 动画效果: 容器的触发器,旋转容器: 属性配置:使用依赖属性,并且在xaml中写绑定.
- Loading 遮蔽层 简单实现。
<!--背景div--><div id="bg" class="bg" style="display:none;text-align ...
- HTML页面弹出自定义对话框带遮蔽罩(使用JavaScript)
转载:http://blog.sina.com.cn/s/blog_610f47c50100ohe4.html 原理其实很简单:首先绘制弹出的自定义对话框,将其使用display:none隐藏,因为设 ...
- 10、WPF程序集
WPF核心程序集 PresentationCore.dll:这个程序集定义了许多构成WPF GUI层基础的类型.例如包含WPF Ink API(pc笔针输入,手写输入)的支持.几个动画基元以及几个图形 ...
- WPF核心对象模型-类图和解析
DispatcherObject是根基类,通过继承该类,可以得到访问创建该对象的UI线程的Dispatcher对象的能力.通过Dispatcher对象,可以将代码段合并入该UI线程执行. Depend ...
- dotnet 读 WPF 源代码笔记 渲染收集是如何触发
在 WPF 里面,渲染可以从架构上划分为两层.上层是 WPF 框架的 OnRender 之类的函数,作用是收集应用程序渲染的命令.上层将收集到的应用程序绘制渲染的命令传给下层,下层是 WPF 的 GF ...
- HTML+CSS项目开发总结
好几天没更新博客了,刚实战完一个HTML+CSS的简单项目.经过几天的摸索,发现收益良多.之前只是单纯得写demo,看知识点,没有亲自实战项目.但实战过后才会了解,如何才能更好地提升自己的技术.针对这 ...
- easy ui 零散技巧
1.Jquery带上下文查找: 格式:$(selector,context) 例如:$("input",window.document),查找当前文档下的说有input元素,也等价 ...
- html+jquery翻页相册(原创)
呵呵 今天心情大好,再发一篇最进前端实现的相册模仿功能 这个相册是在一个网站的案例展示页面上实现的,没单独写出来,没时间,重用性也很差,以后有时间了再单独提取出来, 写这个玩意前,我在网上找了一些案例 ...
随机推荐
- C#中Base64之编码,解码方法
原文:C#中Base64之编码,解码方法 1.base64 to string string strPath = "aHR0cDovLzIwMy44MS4yOS40Njo1NTU3L1 ...
- Shell 文件包含
和其他语言一样,Shell 也可以包含外部脚本.这样可以很方便的封装一些公用的代码作为一个独立的文件. Shell 文件包含的语法格式如下: . filename # 注意点号(.)和文件名中间有一空 ...
- HDOJ 4883 TIANKENG’s restaurant
称号: TIANKENG's restaurant Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65536 K (Ja ...
- 断剑重铸之日,席卷朗朗乾坤之时--PHP学习一月漫记
传说中阿尔萨斯王子沉沦堕落之后,被巫妖王安置在冰冷的城堡中,静静地等待重出天日,它随身携带的宝剑也埋没与尘土之间,暗淡无光.他想起宝剑伴身,东征西战的峥嵘岁月,忆及如今身陷囹圄,一股怨念由心底升起,许 ...
- Python 学习入门(23)—— 进程
本文介绍Python的os包中有查询和修改进程信息的函数,Python的这些工具符合Linux系统的相关概念,所以可以帮助理解Linux体系. 1. 进程信息 os包中相关函数如下: uname() ...
- 可运行jar包调用exe可运行文件,子进程阻塞
背景: 须要在项目的測试工具中加入一个button,点击后直接打开某exe工具. 这个工具的功能是导入txt文件,转为excel报表输出. 无奈解析了两行之后就停止不动了,也不报错.关闭測试工具后,就 ...
- fopen()功能
1.2 文件输入和输出功能 键盘.显示器.打印机.磁盘驱动器和其他逻辑器件, 输入和输出可以通过文件管理方法可以完成. 最经常使用的编程是一个磁盘文件, 因此,这一部分主要是基于磁盘文件, 简介Tur ...
- 联系人数据库设计之AbstractContactsProvider
个人见解,欢迎交流. 联系人数据库设计,源代码下载请自行去android官网下载. package com.android.providers.contacts; import android.con ...
- 生产者、消费者 C源码,gcc编译通过
/*生产者.消费者*/ #include<stdio.h> #include<pthread.h> #define BUFFER_SIZE 16 /***struct prod ...
- ZOJ3805:Machine
In a typical assembly line, machines are connected one by one. The first machine's output product wi ...