SYD8801是一款低功耗高性能蓝牙低功耗SOC,集成了高性能2.4GHz射频收发机、32位ARM Cortex-M0处理器、128kB Flash存储器、以及丰富的数字接口。SYD8801片上集成了Balun无需阻抗匹配网络、高效率DCDC降压转换器,适合用于可穿戴、物联网设备等。具体可咨询:http://www.sydtek.com/

调用线程无法访问此对象,因为另一个线程拥有该对象的问题的解决办法

摘录于:http://blog.csdn.net/u011549779/article/details/53388795

这个问题出现的原因主要是线程间的访问限制导致的,如果想要访问可以通过委托来进行访问

this.userModeControl.Dispatcher.Invoke(
                            new Action(
                                delegate
                                {
                                    this.userModeControl.IsEnabled = true;
                                }

));

解析:

出现上面的异常是因为多个线程在同时访问一个对象造成的,在网上查看了一些资料,说的是在C#2005后不再支持多线程直接访问界面的控件(界面创建线程与访问线程不是同一个线程),但是可以可以使用delegate来解决。相应的解决方法如下:WPF:Dispatcher.Invoke 方法,只有在其上创建 Dispatcher 的线程才可以直接访问DispatcherObject。若要从不同于在其上创建 DispatcherObject 的线程的某个线程访问 DispatcherObject,请对与 DispatcherObject 关联的 Dispatcher 调用 Invoke 或 BeginInvoke。需要强制线程安全的 DispatcherObject 的子类可以通过对所有公共方法调用 VerifyAccess 来强制线程安全。这样可以保证调用线程是在其上创建 DispatcherObject 的线程。代码:  this.lbl.Dispatcher.Invoke(new Action(()={ this.lbl.Text = this is a test!!!; }));this.lbl.Dispatcher.Invoke(new Action(()={ this.lbl.Text = this is a test!!!; }));Winfrom:Control.Invoke 方法 (Delegate),在拥有此控件的基础窗口句柄的线程上执行指定的委托。代码:  this.lbl.Invoke(new Action(()={ this.lbl.Text = this is a test!!!; }));所以可以按照下面这样(修改theout方法的内容)来解决刚才的问题:
publicvoidtheout(objectsource,System.Timers.ElapsedEventArgse){this.gcc1.Dispatcher.Invoke(newAction(delegate{if(this.gcc1.Offset<1){this.gcc1.Offset+=0.1;}else{this.gcc1.Offset=0;}}));this.gcc2.Dispatcher.Invoke(newAction(delegate{if(this.gcc2.Offset<1){this.gcc2.Offset+=0.1;}else{this.gcc2.Offset=0;}}));}  这样就可以解决调用线程无法访问此对象,因为另一个线程拥有该对象的问题

C#读写EXCEL源码提示“office检测到此文件存在一个问题。为帮助保护您的计算机,不能打开此文件”的解决

摘录于:http://blog.csdn.net/chenhao0568/article/details/77676965

我发现excel最新的扩展名.xlsx不用打开文件在计算机里就可以直接搜里面的内容。但老的.xls就搜不到。

1.C#写的操作EXCEL应用 提示“office检测到此文件存在一个问题。为帮助保护您的计算机,不能打开此文件。 之前还正常,换个电脑就报错。

先手工打开Excel,会提示“受保护的视图”,不能编辑。点启用编辑就行了。再打开软件,正常了。

2.找不到引用microsoft.office.core

在项目引用中右击选择添加引用,选择COM里面选择Microft Office 12.0 object Library和Microft Excel 12.0 object Library分别点确定即可!同样如果要引用World选Microft World 12.0 object Library!  2003/2007共通处理方式 分别为11或12版本  添加.net中Microsoft.Office.Interop.excel;  添加.net中Office

3.源码示例

[csharp] view plain copy

  1. using System;
  2. using System.Reflection;
  3. using System.IO;
  4. using Microsoft.Office.Interop.Excel;
  5. namespace Excel
  6. {
  7. class Excel
  8. {
  9. public static int startRow =5;
  10. public static string jzmc = "";
  11. public static string id = "";
  12. public static Double count = 0;
  13. public static Array zw;
  14. public static bool WriteXls(string filename, System.Collections.ArrayList rowData, int sheetNum)
  15. {
  16. //启动Excel应用程序
  17. Microsoft.Office.Interop.Excel.Application xls = new Microsoft.Office.Interop.Excel.Application();
  18. //  _Workbook book = xls.Workbooks.Add(Missing.Value); //创建一张表,一张表可以包含多个sheet
  19. //如果表已经存在,可以用下面的命令打开
  20. _Workbook book = xls.Workbooks.Open(filename, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
  21. _Worksheet sheet;//定义sheet变量
  22. xls.Visible = false;//设置Excel后台运行
  23. xls.DisplayAlerts = false;//设置不显示确认修改提示
  24. //创建并写入数据到sheet
  25. try
  26. {
  27. sheet = (_Worksheet)book.Worksheets.get_Item(sheetNum);//获得第i个sheet,准备写入
  28. }
  29. catch (Exception ex)//不存在就增加一个sheet
  30. {
  31. sheet = (_Worksheet)book.Worksheets.Add(Missing.Value, book.Worksheets[book.Sheets.Count], 1, Missing.Value);
  32. }
  33. //sheet.Name = "第" + i.ToString() + "页";//设置当前sheet的Name
  34. sheet.get_Range("C3", Type.Missing).Cells.Value2=jzmc;
  35. sheet.get_Range("G3", Type.Missing).Cells.Value2=id;
  36. sheet.get_Range("I3", Type.Missing).Cells.Value2=count;
  37. for (int offset = 0; offset < 10; offset++)
  38. {
  39. string str = rowData[offset].ToString();
  40. sheet.Cells[startRow, offset + 1] = rowData[offset].ToString();
  41. }
  42. startRow++;//行位置向前加
  43. //将表另存为
  44. //  book.SaveAs(filename, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
  45. //如果表已经存在,直接用下面的命令保存即可
  46. book.Save();
  47. book.Close(false, Missing.Value, Missing.Value);//关闭打开的表
  48. xls.Quit();//Excel程序退出
  49. //sheet,book,xls设置为null,防止内存泄露
  50. sheet = null;
  51. book = null;
  52. xls = null;
  53. GC.Collect();//系统回收资源
  54. return true;
  55. }
  56. public static bool CreateFile(string filename)
  57. {
  58. try
  59. {
  60. //启动Excel应用程序
  61. Microsoft.Office.Interop.Excel.Application xls = new Microsoft.Office.Interop.Excel.Application();
  62. _Workbook book = xls.Workbooks.Add(Missing.Value); //创建一张表,一张表可以包含多个sheet
  63. xls.DisplayAlerts = false;//设置不显示确认修改提示
  64. //将表另存为
  65. book.SaveAs(filename, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
  66. book.Close(false, Missing.Value, Missing.Value);//关闭打开的表
  67. xls.Quit();//Excel程序退出
  68. //sheet,book,xls设置为null,防止内存泄露
  69. xls = null;
  70. GC.Collect();//系统回收资源
  71. }
  72. catch (Exception ex)//不存在就退出
  73. {
  74. return false;
  75. }
  76. return true;
  77. }
  78. public static Array ReadXls(string filename, int index)//读取第index个sheet的数据
  79. {
  80. //启动Excel应用程序
  81. Microsoft.Office.Interop.Excel.Application xls = new Microsoft.Office.Interop.Excel.Application();
  82. //打开filename表
  83. _Workbook book = xls.Workbooks.Open(filename, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
  84. try
  85. {
  86. _Worksheet sheet;//定义sheet变量
  87. xls.Visible = false;//设置Excel后台运行
  88. xls.DisplayAlerts = false;//设置不显示确认修改提示
  89. sheet = (_Worksheet)book.Worksheets.get_Item(index);//获得第index个sheet,准备读取
  90. Console.WriteLine(sheet.Name);
  91. int row = sheet.UsedRange.Rows.Count;//获取不为空的行数
  92. int col = sheet.UsedRange.Columns.Count;//获取不为空的列数
  93. jzmc = sheet.get_Range("C3", Type.Missing).Cells.Value2;
  94. id = sheet.get_Range("G3", Type.Missing).Cells.Value2;
  95. count = sheet.get_Range("I3", Type.Missing).Cells.Value2;
  96. zw = (Array)sheet.get_Range("B5", "B" + row).Cells.Value2;  //获得区域数据赋值给Array数组,方便读取
  97. Array value = (Array)sheet.get_Range("A5", "F" + row).Cells.Value2;  //获得区域数据赋值给Array数组,方便读取
  98. // Array value = (Array)sheet.get_Range(sheet.Cells[1, 1], sheet.Cells[row, col]).Cells.Value2;
  99. book.Save();//保存
  100. book.Close(false, Missing.Value, Missing.Value);//关闭打开的表
  101. xls.Quit();//Excel程序退出
  102. //sheet,book,xls设置为null,防止内存泄露
  103. sheet = null;
  104. book = null;
  105. xls = null;
  106. GC.Collect();//系统回收资源
  107. return value;
  108. }
  109. catch (Exception ex)//不存在就退出
  110. {
  111. book.Close(false, Missing.Value, Missing.Value);//关闭打开的表
  112. xls.Quit();//Excel程序退出
  113. //sheet,book,xls设置为null,防止内存泄露
  114. book = null;
  115. xls = null;
  116. GC.Collect();//系统回收资源
  117. return null;
  118. }
  119. }
  120. public static void Copy(string path, string path2)
  121. {
  122. //string path = @"c:/temp/MyTest.txt";
  123. // string path2 = path + "temp";
  124. try
  125. {
  126. // Create the file and clean up handles.
  127. // using (FileStream fs = File.Create(path)) { }
  128. // Ensure that the target does not exist.
  129. File.Delete(path2);
  130. // Copy the file.
  131. //  File.Copy(path, path2);
  132. //  Console.WriteLine("{0} copied to {1}", path, path2);
  133. // Try to copy the same file again, which should succeed.
  134. File.Copy(path, path2, true);
  135. //  Console.WriteLine("The second Copy operation succeeded, which was expected.");
  136. }
  137. catch
  138. {
  139. // Console.WriteLine("Double copy is not allowed, which was not expected.");
  140. }
  141. }
  142. public static void Test()
  143. {
  144. string Current;
  145. Current = Directory.GetCurrentDirectory();//获取当前根目录
  146. Array Data = ReadXls(Current + "\\JMO-PCBA-019.xls", 1);//读取test.xls的第一个sheet表
  147. foreach (string temp in Data)
  148. Console.WriteLine(temp);
  149. Console.ReadKey();
  150. }
  151. }
  152. }

C#技巧【调用线程无法访问此对象,因为另一个线程拥有该对象的问题的解决办法】【C#读写EXCEL源码提示“office检测到此文件存在一个问题。为帮助保护您的计算机,不能打开此文件”的解决】相关推荐

  1. 引用计算机写源码,C#读写EXCEL源码提示“office检测到此文件存在一个问题。为帮助保护您的计算机,不能打开此文件。 ”的解决...

    1.C#写的操作EXCEL应用 提示"office检测到此文件存在一个问题.为帮助保护您的计算机,不能打开此文件. 之前还正常,换个电脑就报错. 先手工打开Excel,会提示"受保 ...

  2. C#读写EXCEL源码提示“office检测到此文件存在一个问题。为帮助保护您的计算机,不能打开此文件。 ”的解决

    我发现excel最新的扩展名.xlsx不用打开文件在计算机里就可以直接搜里面的内容.但老的.xls就搜不到. 1.C#写的操作EXCEL应用 提示"office检测到此文件存在一个问题.为帮 ...

  3. win10计算机右键属性打不开,win10系统右键计算机无法打开属性窗口的解决技巧...

    win10系统右键计算机无法打开属性窗口的解决技巧? win10系统有很多人都喜欢使用,我们操作的过程中常常会碰到win10系统右键计算机无法打开属性窗口的问题.如果遇到win10系统右键计算机无法打 ...

  4. 直播网站源码直播平台软件开发iOS动手做一个直播(原理篇)

    直播网站源码直播平台软件开发iOS动手做一个直播(原理篇) 上篇文章主要给出了代码,但是并没有详细说明直播相关的知识,这篇文章就说一下直播的相关理论知识.附上直播代码篇地址. ###推流 腾讯直播平台 ...

  5. 一个可以在线解密qmc和ncm等音乐加密格式的网站源码

    介绍 这是一个可以在线解密QQ音乐.网易云音乐付费音乐加密格式的网站源码. 由于程序编写使用了ES6语法,Blob,Web Worker特性,过旧的浏览器可能无法使用. 截图 特性 支持的格式 QQ ...

  6. python创建一个字典、关键字为只包含字母的字符串_探究Python源码,终于弄懂了字符串驻留技术...

    摘要:在本文中,我们将深入研究 Python 的内部实现,并了解 Python 如何使用一种名为字符串驻留(String Interning)的技术,实现解释器的高性能. 每种编程语言为了表现出色,并 ...

  7. glide源码中包含了那种设计模式_推荐一个好用的拍照选图库,致敬Glide

    本文作者 作者:思忆_GeorgeQin 链接: https://juejin.cn/post/6907620425837051917 本文由作者授权发布. 1内容提要 本文内容较长,包含一个功能整个 ...

  8. 用Android Studio做一个超好玩的拼图游戏,附送超详细注释的源码

    文章目录 一.项目概述 二.开发环境 三.需求分析 四.实现过程 1.拼图游戏布局绘制 2.拼图游戏时间计时 3.拼图游戏打乱显示 4.拼图游戏碎片位置切换 5.拼图游戏成功的条件 6.拼图游戏重新开 ...

  9. JVM - 一个案例反推不同JDK版本的intern机制以及intern C++源码解析

    文章目录 Pre 案例 答案 字符串常量池在不同JDK版本的位置变化 JDK1.7(含)+ JDK1.6 intern源码 Pre JVM - 深入剖析字符串常量池 案例 String str2 = ...

最新文章

  1. 刻意练习:机器学习实战 -- Task01. K邻近算法
  2. 一个空的C++类中有什么
  3. java arrays.sort() c_5.4 (Java学习笔记)集合的排序(Collections.sort(),及Arrays.sort())...
  4. baidumap vue 判断范围_百度地图 vue-baidu-map
  5. Wannafly挑战赛22 D 整数序列 (线段树维护三角函数值)
  6. 定义[nextTick、事件循环]
  7. 信息学奥赛一本通 1962:【13NOIP普及组】表达式求值 | 洛谷 P1981 [NOIP2013 普及组] 表达式求值
  8. python读取大文件csv_对python中大文件的导入与导出方法详解
  9. 查看和修改mysql最大连接数
  10. Mugeda(木疙瘩)H5案例课—H5酷炫特效制作-岑远科-专题视频课程
  11. misc fiction 科幻小说中的五大鸡肋发明
  12. C语言——函数(下)
  13. 小程序地图,回到当前所在位置
  14. spring中的注解和xml配置文件中配置对应总结
  15. effective modern cpp
  16. 【收集】巴厘岛自助游攻略
  17. python读取csv文件路径正确但报错FileNotFoundError: [Errno 2] No such file or directory
  18. [转载]100个最佳Linux站点
  19. 简介:Sencha Touch框架
  20. vue-cil创建vue项目

热门文章

  1. 外包和直招的区别,谁能学到东西
  2. the default discovery settings are unsuitable for production use; at least one of [discovery.seed_ho
  3. RNN、LSTM、GRU实战——imdb情感分析
  4. 开源一个安信可A9g小项目微信小程序定位器项目②GPS模块如何定位经纬度并且上报到MQTT服务器,实现远程查看模块的经纬度;
  5. oss 浏览器访问pdf文件不能预览
  6. python安装第三方库时找不到“cl.exe”的解决方法(Win10系统)
  7. 【OnMyWay】我为啥弃用了Ubuntu
  8. 九宫重排 蓝桥杯c++ 题解 字符串hash+bfs
  9. 【Linux】四、Linux 进程概念(上篇)
  10. YOLOv5识别图像内苹果和香蕉