elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: 1 ... 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 [655] 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 ... 1236
6541  Programación / .NET (C#, VB.NET, ASP) / Re: Problema con modificación de un PictureBox desde el hilo generado por un Timer. en: 6 Octubre 2014, 16:21 pm
Como he comentado en otras ocasiones C++/Cli no es mi fuerte, quizás me equivoque en algún aspecto de lo que voy a comentar a continuación, pero he notado cierta irregularidad aquí:

Código
  1. FileStream ^fs = gcnew FileStream(path, FileMode::Open, FileAccess::Read);
  2. BinaryReader ^br = gcnew BinaryReader(fs);

Me he fijado en el operador gcnew, y me he informado un poco sobre su funcionalidad, pero al parecer dicho operador lo único que hace es indicar que los objetos se deben auto liberar, eso no significa que se vayan a liberar inmediatamente despues de enviar el return value, el garbage collector libera recursos cuando así lo cree necesario (a menos que lo invoques directamente), puede ser inmediatamente, o pueden pasar 2 o 20 segundos, aunque, con el uso de ese operador no estoy nada seguro la verdad, pero prueba a añadirle un bloque Finally a tu Try/catch para liberar los objetos:

Código
  1. Dim fs As FileStream = Nothing
  2. Dim br As BinaryReader = Nothing
  3.  
  4. Try
  5.    fs = New FileStream("", FileMode.Open, FileAccess.Read)
  6.    br = New BinaryReader(fs)
  7.  
  8. Catch ex As Exception
  9.  
  10. Finally
  11.    If fs IsNot Nothing Then
  12.        fs.Close()
  13.    End If
  14.  
  15.    If br IsNot Nothing Then
  16.        br.Close()
  17.    End If
  18.  
  19. End Try

C# (conversión al vuelo):
Código
  1. FileStream fs = null;
  2. BinaryReader br = null;
  3.  
  4. try {
  5. fs = new FileStream("", FileMode.Open, FileAccess.Read);
  6. br = new BinaryReader(fs);
  7.  
  8. } catch (Exception ex) {
  9.  
  10. } finally {
  11. if (fs != null) {
  12. fs.Close();
  13. }
  14.  
  15. if (br != null) {
  16. br.Close();
  17. }
  18.  
  19. }

Lo mismo digo en el bloque Try/Catch donde usas el método LockBits, ¿que ocurre si hubiera un error de por medio y no se procesa la instrucción UnLockBits?,
yo directamente eliminaría el Try/catch, y en caso de encontrar una excepción la intentaría resolver, pero bueno, si quieres usar Try/catch entonces es tu deber asegurarte de que la imagen se desbloquea siempre en cualquier circunstancia:

Código
  1. Dim bmpData As BitmapData = Nothing
  2. Dim bmp As Bitmap = Nothing
  3. Dim success As Boolean = False
  4.  
  5. Try
  6.    bmp = Bitmap.FromFile("")
  7.    bmpData = bmp.LockBits(New Rectangle With {.Width = bmp.Width, .Height = bmp.Height},
  8.                           ImageLockMode.ReadWrite, bmp.PixelFormat)
  9.  
  10.    bmp.UnlockBits(bmpData)
  11.    success = True
  12.  
  13. Catch ex As Exception
  14.  
  15. Finally
  16.    If Not success Then
  17.        bmp.UnlockBits(bmpData)
  18.    End If
  19.  
  20. End Try

C# (conversión al vuelo):
Código
  1. BitmapData bmpData = null;
  2. Bitmap bmp = null;
  3. bool success = false;
  4.  
  5. try {
  6. bmp = Bitmap.FromFile("");
  7. bmpData = bmp.LockBits(new Rectangle {
  8. Width = bmp.Width,
  9. Height = bmp.Height
  10. }, ImageLockMode.ReadWrite, bmp.PixelFormat);
  11.  
  12. bmp.UnlockBits(bmpData);
  13. success = true;
  14.  
  15.  
  16. } catch (Exception ex) {
  17. } finally {
  18. if (!success) {
  19. bmp.UnlockBits(bmpData);
  20. }
  21.  
  22. }

No se si esos pequeños ajustes resolverán el problema, pero tampoco puedo ayudar mucho más.

Saludos!
6542  Programación / .NET (C#, VB.NET, ASP) / Re: Descifrar operaciones en resultados correlativos en: 6 Octubre 2014, 15:32 pm
¿ como y por donde empiezo a romperme el coco para que pueda hacerlo desde un txt que tenga ya estos números  ?

-> File.ReadAllLines(String)

estos números pueden de de cuatro números ( 10 20 30 80 )  hasta 10 números ( 01 05 06 20 25 40 50 55 60 90 ) por ejemplo

-> For Each...Next
+
-> String().Count
+
GetDifferenceExpression(Long, Long) by Elektro

Saludos!
6543  Programación / .NET (C#, VB.NET, ASP) / Re: Problema con modificación de un PictureBox desde el hilo generado por un Timer. en: 6 Octubre 2014, 00:48 am
El mensaje de error se explica por si mismo, te está indicando que se está intentando bloquear la misma imagen simultaneamente (Bitmap.LockBits) sin haberla desbloqueado previamente (Bitmap.UnlockBits), y claro está, no puedes bloquear la imagen dos veces consecutivas si no la desbloqueas, comprueba bien lo que estés haciendo con ese objeto 'bitMap'.

EDITO: Tras leer el título de tu pregunta (que antes no me fijé muy bien) afirmas que la aplicación es multi-hilo, entonces probablemente la causa se deba a que varios hilos están intentando acceder/usar la misma imagen simultaneamente, el problema sigue siendo el mismo que he mencionado arriba.
Prueba a utilizar el método Bitmap.Clone para evitar esa excepción.





3 - He leído algo de Invoke e InvokeRequired. PictureBox tiene el InvokeRequired a 'false' así que imagino que no tiene nada que ver con usar invoke.

Si tu aplicación es single-threaded no tienes porque preocuparte desde que Class (Form) asignes la propiedad de cualquier control,
de lo contrario, si tu aplicación es multi-htreaded y estás intentando modificar la propiedad de ese control desde un thread distinto al que creó el control, entonces por supuestisimo debes usar Control.InvokeRequired + Control.Invoke.

Aparte, en lo referente al Timer, no veo razón para que te estés complicando la vida con un Threading.Timer (+ Callbacks), el cual si tu aplicación es multi-hilo entonces es probable que también cause un error derivado con la imagen, ¿es realmente necesario para tu propósito?, prueba a utilizar un Windows.Forms.timer en su lugar.

saludos
6544  Programación / .NET (C#, VB.NET, ASP) / Re: Descifrar operaciones en resultados correlativos en: 5 Octubre 2014, 19:33 pm
Bueno no se que ha pasado que no entraba el foro,me imagino que una caida de servidor :)

Gracias elektro lo revizo :)


Luis

Dímelo a mi, a los 10 minutos de leer tu pregunta (ayer sabado por la noche) ya habia escrito el ejemplo de arriba para ti y te lo quería mostrar para que tuvieras algo con lo que programar 'por que era sábado' como dijiste ;), pero hasta hoy por la mañana no pude postear el code xD.

PD: Todo es por culpa de un individuo o una panda de Juanckers que se dedican a Ddosear el foro, pero bueno, en este mundo debemos aprender a convivir con gente (y gentuza) de todo tipo.

Saludos!
6545  Foros Generales / Sugerencias y dudas sobre el Foro / Re: no puedo entrar a la web en: 5 Octubre 2014, 10:34 am
Acciones legales...  :¬¬

Y una somanta de palos también, pero lo primero caerá antes, ya que más tarde o temprano cometerán un fallo, como suele pasar.
6546  Programación / .NET (C#, VB.NET, ASP) / Re: Descifrar operaciones en resultados correlativos en: 5 Octubre 2014, 09:58 am
Solo tienes que obtener la diferencia, no se que tipo de complicación le encuentras para realizar lo mismo en un código.

Prueba así:

Código
  1. Public Class Form1
  2.  
  3.    Private Shadows Sub Load() Handles MyBase.Load
  4.  
  5.        Dim sb As New System.Text.StringBuilder
  6.        Dim Values As New List(Of Integer()) From
  7.            {
  8.                ({1I, 19, 1I}),
  9.                ({7I, 22, 4I}),
  10.                ({8I, 27, 11}),
  11.                ({20, 29, 17}),
  12.                ({23, 33, 22}),
  13.                ({39, 46, 31})
  14.            }
  15.  
  16.        For Each ValueCol() As Integer In Values
  17.  
  18.            Dim Value1 As Integer = ValueCol(0)
  19.            Dim Value2 As Integer = ValueCol(1)
  20.            Dim Value3 As Integer = ValueCol(2)
  21.            Dim Diff1 As String = GetDifferenceExpression(Value1, Value2)
  22.            Dim Diff2 As String = GetDifferenceExpression(Value2, Value3)
  23.  
  24.            sb.AppendLine(String.Format("{0} -> {1} = {2}",
  25.                          Value1.ToString("00"), Value2.ToString("00"), Diff1))
  26.  
  27.            sb.AppendLine(String.Format("{0} -> {1} = {2}",
  28.                          Value2.ToString("00"), Value3.ToString("00"), Diff2))
  29.  
  30.            sb.AppendLine()
  31.  
  32.        Next ValueCol
  33.  
  34.        MessageBox.Show(sb.ToString)
  35.  
  36.        Application.Exit()
  37.  
  38.    End Sub
  39.  
  40.    ' Get Difference expression
  41.    ' ( By Elektro )
  42.    '
  43.    ' Usage Examples:
  44.    ' MessageBox.Show(GetDifferenceExpression(5, 10))
  45.    '
  46.    ''' <summary>
  47.    ''' Gets the arithmetic sum/rest difference expression between two values.
  48.    ''' </summary>
  49.    ''' <param name="Value1">The first value.</param>
  50.    ''' <param name="Value2">The second value.</param>
  51.    ''' <returns>The arithmetic expression.</returns>
  52.    Friend Function GetDifferenceExpression(ByVal Value1 As Long, ByVal Value2 As Long) As String
  53.  
  54.        Select Case Value2
  55.  
  56.            Case Is > Value1 ' Value2 is bigger than Value1.
  57.                Return String.Format("+{0}", CStr(Value2 - Value1))
  58.  
  59.            Case Is < Value1 ' Value2 is lower than Value1.
  60.                Return String.Format("-{0}", CStr(Value1 - Value2))
  61.  
  62.            Case Else ' Value2 is equals to Value1.
  63.                Return "0"
  64.  
  65.        End Select
  66.  
  67.    End Function
  68.  
  69. End Class





Saludos.
6547  Foros Generales / Sugerencias y dudas sobre el Foro / Re: no puedo entrar a la web en: 5 Octubre 2014, 09:56 am
yo no digo nada, pero... esta vez la han tumbado pero que bien tumbada, malditos sean, ¿se la tienen jurada a elhacker.net o que narices les pasa ya?, que asco de gente.

Saludos!
6548  Programación / .NET (C#, VB.NET, ASP) / Re: Cambiar posicion en inicio del programa en: 4 Octubre 2014, 22:28 pm
Postea un enlace para descargar la aplicación, para que pueda investigar cual es el problema.

Saludos!
6549  Sistemas Operativos / Windows / Re: Procesos y subprocesos windows 8 en: 4 Octubre 2014, 22:17 pm
por cierto

¿te parece mucho que mi sistema coja un 30%-45% de memoria ram?

Es que, sinceramente, haces una pregunta sobre tu PC sin dar información de tu PC. ¿como pretendes que te digamos si el consumo es mucho o poco si no especificas cuanta ram tienes instalada (eso, como mínimo)?, o el navegador que utilizas para ver videos de youtube, ya que por ejemplo el Firefox consume mucha, muchíiiiisima Ram cuando el plugincontainer entrá en acción, en fin, detalles que ayuden a diagnosticar un posible problema en tu PC, porque es absurdo decirte si lo considero mucho o poco consumo sin conocer esos y otros detalles, como los procesos que tienes en ejecución.

De todas formas en el administrador de tareas puedes hacerte una idea de lo que consume cada proceso, y con cualquier buen profiler puedes realizar un análisis/diagnostico de cualquier proceso para averiguar la RAM (la real) que está consumiendo proceso por proceso en cada momento, para averiguar posibles fugas de memoria en las aplicaciones. Como profiler te recomendaría el de Telerik (JustTrace) pero creo que solo soporta aplicaciónes .NET, y el de JetBrains (dotMemory) también, así que no se decirte un profiler de uso general xD.

Saludos!
6550  Programación / .NET (C#, VB.NET, ASP) / Re: ¿Alternativa al atributo RangeAttribute de ASP.NET? en: 4 Octubre 2014, 20:31 pm
Vaya, me alegra verte por aqui de nuevo NovLucker, y muchas gracias por la documentación, aunque no he sacado practicamente nada en claro.

Mi intención es transformar esto:

Código
  1. Public Class MyType
  2.  
  3. ''' <summary>
  4. ''' Gets or sets the value.
  5. ''' </summary>
  6. ''' <value>The value.</value>
  7. Public Property MyProperty As Integer
  8.    Get
  9.        Return Me._MyValue
  10.    End Get
  11.    Set(ByVal value As Integer)
  12.  
  13.        If value < Me._MyValueMin Then
  14.            If Me._MyValueThrowRangeException Then
  15.                Throw New ArgumentOutOfRangeException("MyValue", Me._MyValueExceptionMessage)
  16.            End If
  17.            Me._MyValue = Me._MyValueMin
  18.  
  19.        ElseIf value > Me._MyValueMax Then
  20.            If Me._MyValueThrowRangeException Then
  21.                Throw New ArgumentOutOfRangeException("MyValue", Me._MyValueExceptionMessage)
  22.            End If
  23.            Me._MyValue = Me._MyValueMax
  24.  
  25.        Else
  26.            Me._MyValue = value
  27.  
  28.        End If
  29.  
  30.    End Set
  31. End Property
  32. Private _MyValue As Integer = 0I
  33. Private _MyValueMin As Integer = 0I
  34. Private _MyValueMax As Integer = 10I
  35. Private _MyValueThrowRangeException As Boolean = True
  36. Private _MyValueExceptionMessage As String = String.Format("The valid range is beetwen {0} and {1}",
  37.                                                           Me._MyValueMin, Me._MyValueMax)
  38.  
  39. End Class


En algo más simplificado, y sobre todo rehusable, como esto:

Código
  1. Public NotInheritable Class MyType
  2.  
  3.    ''' <summary>
  4.    ''' Gets or sets the value.
  5.    ''' Valid range is between 0 and 10.
  6.    ''' </summary>
  7.    ''' <value>The value.</value>
  8.    <RangeAttribute(0, 10, ThrowRangeException:=False, ExceptionMessage:="")>
  9.    Public Property MyProperty As Integer
  10.  
  11. End Class


Pero no soy capaz de descubrir o entender como puedo hookear el getter/setter, apenas tengo información sobre ello, de todas formas intenté empezar a hacerlo y esto es lo que tengo, un código que no sirve para nada, porque no estoy evaluando nada, pero al menos sirve como idea inicial:

Código
  1. <AttributeUsage(AttributeTargets.Property, AllowMultiple:=False)>
  2. Public Class RangeAttribute : Inherits Attribute
  3.  
  4.    ''' <summary>
  5.    ''' Indicates the Minimum range value.
  6.    ''' </summary>
  7.    Public Minimum As Single
  8.  
  9.    ''' <summary>
  10.    ''' Indicates the Maximum range value.
  11.    ''' </summary>
  12.    Public Maximum As Single
  13.  
  14.    ''' <summary>
  15.    ''' Determines whether to throw an exception when the value is not in range.
  16.    ''' </summary>
  17.    Public ThrowRangeException As Boolean
  18.  
  19.    ''' <summary>
  20.    ''' Indicates the exception message to show when the value is not in range.
  21.    ''' </summary>
  22.    Public ExceptionMessage As String
  23.  
  24.    ''' <summary>
  25.    ''' Initializes a new instance of the <see cref="RangeAttribute"/> class.
  26.    ''' </summary>
  27.    ''' <param name="Minimum">The minimum range value.</param>
  28.    ''' <param name="Maximum">The maximum range value.</param>
  29.    Public Sub New(ByVal Minimum As Single,
  30.                   ByVal Maximum As Single)
  31.  
  32.        Me.New(Minimum, Maximum, ThrowRangeException:=False, ExceptionMessage:=String.Empty)
  33.  
  34.    End Sub
  35.  
  36.    ''' <summary>
  37.    ''' Initializes a new instance of the <see cref="RangeAttribute"/> class.
  38.    ''' </summary>
  39.    ''' <param name="Minimum">The minimum range value.</param>
  40.    ''' <param name="Maximum">The maximum range value.</param>
  41.    ''' <param name="ThrowRangeException">
  42.    ''' Determines whether to throw an exception when the value is not in range.
  43.    ''' </param>
  44.    Public Sub New(ByVal Minimum As Single,
  45.                   ByVal Maximum As Single,
  46.                   ByVal ThrowRangeException As Boolean,
  47.                   Optional ByVal ExceptionMessage As String = "")
  48.  
  49.        Me.Minimum = Minimum
  50.        Me.Maximum = Maximum
  51.        Me.ThrowRangeException = ThrowRangeException
  52.  
  53.        If Not String.IsNullOrEmpty(ExceptionMessage) Then
  54.            Me.ExceptionMessage = ExceptionMessage
  55.        Else
  56.            Me.ExceptionMessage = String.Format("The valid range is beetwen {0} and {1}", Minimum, Maximum)
  57.        End If
  58.  
  59.    End Sub
  60.  
  61. End Class

Cualquier información adicional se agradece.

Un saludo!
Páginas: 1 ... 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 [655] 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 ... 1236
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines