using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using Construction.BatchCreateMap; namespace TestIDWSharp { public partial class Form1 : Form { ProgressEvent progressEvent; public Form1() { InitializeComponent(); progressEvent = DoProgress; } private void button1_Click(object sender, EventArgs e) { WellCalibrate calibrate = new WellCalibrate(); Console.WriteLine("afsfds"); //string strGrid = @"C:\GeoIntelligent\Test\工区10.8\middle\interpret_depthlayer\s21_bak.dfd"; //string strWell = @"C:\GeoIntelligent\Test\工区10.8\middle\interpret_depthlayer\s21wells.csv"; //string strOut = @"C:\GeoIntelligent\Test\工区10.8\middle\interpret_depthlayer\s21.dfd"; string strGrid = @"C:\GeoIntelligent\Test\测\middle\interpret_depthlayer\1.dfd"; string strWell = @"C:\GeoIntelligent\Test\测\middle\interpret_depthlayer\1wells.csv"; string strOut = @"C:\GeoIntelligent\Test\测\middle\interpret_depthlayer\1_adjust.dfd"; //calibrate.CalculateByFile(strGrid, strWell, strGrid); //calibrate.CalculateByFile(strGrid, strWell, strOut, null, 2.0, "断层", 5.0, 5,true); calibrate.CalculateByFile(strGrid, strWell, strOut, null, 2.0, "断层", 5.0, 5, true); } /// /// 网格化 /// /// /// private async void btnOK_Click(object sender, EventArgs e) { string strXyz = this.txtXyz.Text; string strBorder = this.txtBorder.Text; string strFault = this.txtFault.Text; string strResult = this.txtResult.Text; int nGridX = Convert.ToInt32(this.txtGridX.Text); double dSmooth = Convert.ToDouble(this.txtSmooth.Text); int nInsertTimes = Convert.ToInt32(txtInsertTimes.Text); double dSearchDistance = Convert.ToDouble(txtSearchDistance.Text); strXyz = @"D:\temp\新建文件夹\新建项目\Interpret\TimeLayer\S22a.xyz_Grid.xyz"; strBorder = @"D:\temp\新建文件夹\新建项目\Interpret\Boundary\s22a.dfd"; // strBorder = string.Empty; strFault = @"D:\temp\新建文件夹\新建项目\Interpret\Fault\S22a.dfd"; //strFault = string.Empty; strResult = @"D:\temp\新建文件夹\新建项目\middle\interpret_timelayer\s22a.dfd"; nGridX = 50; dSmooth = 1; //nInsertTimes = 1; strBorder = String.IsNullOrEmpty(strBorder) ? "NULL" : strBorder; //DateTime timeStart = DateTime.Now; IntPtr pEvent = IntPtr.Zero; pEvent = Marshal.GetFunctionPointerForDelegate(progressEvent); this.btnOK.Text = "正在执行"; this.btnOK.Enabled = false; await Task.Run(() => { try { int nSmoothTimes = 3; ModelCreateIDW.IDWModelCreate(strXyz, strBorder, strFault, strResult, nGridX, dSmooth, nSmoothTimes, pEvent, nInsertTimes, 1, 5); //MessageBox.Show(strXyz); } catch (Exception ex) { MessageBox.Show(ex.Message); } }); //t.Start(); //t.Wait(); this.btnOK.Text = "执行"; this.btnOK.Enabled = true; this.progressBar1.Value = 0; //TimeSpan timeSpan = (DateTime.Now - timeStart); MessageBox.Show("完成:");// + timeSpan.TotalSeconds); } private void DoProgress(string funName, int step) { if (this.InvokeRequired) { this.Invoke(new Action(() => { try { this.progressBar1.Value = step; this.progressBar1.Update(); }catch(Exception ex) { MessageBox.Show(ex.Message); } })); } else { this.progressBar1.Value = step; this.progressBar1.Update(); } } } }