我正在用C#编写一个需要重复访问1个图像文件的程序.大部分时间它都可以工作,但如果我的计算机运行速度很快,它会在将文件保存回文件系统之前尝试访问该文件并抛出错误:"另一个进程正在使用的文件".
我想找到解决这个问题的方法,但是我所有的谷歌搜索都只是通过使用异常处理来创建检查.这违背了我的宗教信仰,所以我想知道是否有人有更好的方法呢?
我正在尝试使用AWS-SDK-Core Ruby Gem删除上传的图像文件.
我有以下代码:
require 'aws-sdk-core'
def pull_picture(picture)
Aws.config = {
:access_key_id => ENV["AWS_ACCESS_KEY_ID"],
:secret_access_key => ENV["AWS_SECRET_ACCESS_KEY"],
:region => 'us-west-2'
}
s3 = Aws::S3::Client.new
test = s3.get_object(
:bucket => ENV["AWS_S3_BUCKET"],
:key => picture.image_url.split('/')[-2],
)
end
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误:
您尝试访问的存储区必须使用指定的端点进行寻址.请将以后的所有请求发送到此端点.
我知道该区域是正确的,因为如果我将其更改为us-east-1
,则会出现以下错误:
指定的密钥不存在.
我在这做错了什么?
我正在使用VS 2012进行VB项目,完成后我尝试添加安装项目.
我没有找到它(因为安装项目在VS2010之后停止了)所以我切换到了VS2010,但问题是项目不会打开,我收到此消息:
所选文件是解决方案文件,但是由此应用程序的较新版本创建,无法打开.
我尝试了这篇文章:http://www.codeproject.com/Tips/80953/Converting-VS2010-Solution-to-VS2008 并试图从2012年转换到2010年,但出现了相同的消息.
如何将以下枚举转换为字符串列表?
[Flags]
public enum DataSourceTypes
{
None = 0,
Grid = 1,
ExcelFile = 2,
ODBC = 4
};
Run Code Online (Sandbox Code Playgroud)
我找不到这个确切的问题,这个Enum to List是最接近但我特别想要的List<string>
我在IIS中运行我的Web项目.
这是一个4.0 Framework APP.
我有一个Service.svc,当我运行我的应用程序时,我收到此错误.
"无法从程序集'System.ServiceModel,Version = 3.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'加载类型'System.ServiceModel.Activation.HttpModule'
我试过这个 - > aspnet_regiis.exe -iru我在很多论坛中发现它并没有解决我的问题.
有谁知道另一种方法?
我想知道我可以做些什么来提高Excel自动化的性能,因为如果你在工作表中有很多事情,它可能会很慢......
这里有一些我发现自己:
ExcelApp.ScreenUpdating = false
- 关闭重绘屏幕
ExcelApp.Calculation = Excel.XlCalculation.xlCalculationManual
- 关闭计算引擎,以便Excel在单元格值更改时不会自动重新计算(在完成后将其重新打开)
减少对Worksheet.Cells.Item(row, col)
和的调用Worksheet.Range
- 我不得不轮询数百个单元格以找到我需要的单元格.实现一些单元格位置的缓存,将执行时间从大约40秒减少到大约5秒.
什么样的互操作会对性能造成严重影响,应该避免?你还能做些什么来避免不必要的处理?
我不确定我做了什么,但突然之间,我的Visual Studio 2012将不会调试任何测试.
如果我从Test Explorer中选择一个测试并告诉它运行,它只是在Test Output窗口输出:
> ------ Discover test started ------
> ========== Discover test finished: 29 found (0:00:01.3371755) ==========
> ------ Run test started ------ Process with an Id of -1 is not running.
> ========== Run test finished: 0 run (0:00:01.4711861) ==========
Run Code Online (Sandbox Code Playgroud)
这是什么意思?!执行此操作几次后,错误更改为:
The Operation was Cancelled
Run Code Online (Sandbox Code Playgroud)
我当然没有这样做.
它是在列表中的每个测试中执行此操作.
但是,我可以运行测试没有问题,他们通过...但我无法调试测试.
我可以做些什么?我没有主动进入任何设置并改变任何东西,也许是某个地方的流浪点击,但在哪里?
visual-studio visual-studio-debugging vs-unit-testing-framework visual-studio-2012 visual-studio-2017
我在C#中有一个.Net-Windows应用程序.我需要打开一个excel并处理它.如何在不使用Microsoft.Office.Interop.Excel库的情况下执行此操作?
TL; DR; 编辑6:我缩小了它并提供了5个步骤来重现问题/错误.
public class Program
{
static void Main(string[] args)
{
}
public int Add(int a, int b)
{
return a + b;
}
}
}
Run Code Online (Sandbox Code Playgroud)
Add
Method并选择Create Unit Test:
[TestMethod()]
public void AddTest()
{
Program p = new Program();
var r = p.Add(1, 2);
Assert.IsTrue(3 == r);
}
Run Code Online (Sandbox Code Playgroud)
AddTest()
> Live Testing> Include上的上下文菜单现在将Add的+符号更改为-
Live Unit Testing工作,将-符号改 回+,Live Test通过!!
现在添加对Nuget DLL的引用(任何人都可以) …
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn(gridColumn1, typeof(bool)));
Run Code Online (Sandbox Code Playgroud)
我期待这一行的结果包含有关DataColumns Type(bool)的信息:
?dt.Columns[0].GetType()
Run Code Online (Sandbox Code Playgroud) c# ×6
.net ×5
excel ×2
amazon-s3 ×1
datatable ×1
enums ×1
file ×1
file-io ×1
file-locking ×1
generic-list ×1
iis ×1
interop ×1
performance ×1
ruby ×1
service ×1
svc ×1
unit-testing ×1
vsto ×1